:root {
	--night: #07111f;
	--night-deep: #030711;
	--ivory: #f6f0df;
	--ivory-muted: #c9c4b6;
	--gold: #cdb779;
	--gold-bright: #f3dfa3;
	--cyan: #89dbe2;
	--violet: #9d8ee8;
	--line: rgb(232 218 174 / 42%);
	--tilt: 12deg;
}

* {
	box-sizing: border-box;
}

html {
	min-width: 20rem;
	background: var(--night-deep);
}

body {
	margin: 0;
	color: var(--ivory);
	background: var(--night-deep);
	font-family: Georgia, "Times New Roman", serif;
}

button,
img {
	-webkit-tap-highlight-color: transparent;
}

[hidden] {
	display: none !important;
}

.coming-soon {
	position: relative;
	display: grid;
	min-height: 100vh;
	min-height: 100svh;
	padding:
		max(3.25rem, env(safe-area-inset-top))
		clamp(1rem, 4vw, 4rem)
		max(3rem, env(safe-area-inset-bottom));
	place-items: center;
	overflow: hidden;
	background:
		radial-gradient(circle at 50% 42%, rgb(93 113 184 / 25%), transparent 32rem),
		radial-gradient(circle at 16% 80%, rgb(111 74 160 / 18%), transparent 27rem),
		linear-gradient(145deg, #101b31, var(--night) 58%, var(--night-deep));
	isolation: isolate;
}

.coming-soon::before,
.coming-soon::after {
	position: absolute;
	z-index: -2;
	border: 1px solid rgb(205 183 121 / 12%);
	border-radius: 50%;
	content: "";
	pointer-events: none;
	aspect-ratio: 1;
}

.coming-soon::before {
	width: min(88vw, 67rem);
	box-shadow: inset 0 0 8rem rgb(137 219 226 / 5%);
}

.coming-soon::after {
	width: min(66vw, 49rem);
	border-style: dashed;
	animation: slow-orbit 80s linear infinite;
}

.coming-soon__sky {
	position: absolute;
	z-index: -1;
	inset: 0;
	pointer-events: none;
}

.coming-soon__sky::before {
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgb(255 255 255 / 3%) 1px, transparent 1px),
		linear-gradient(90deg, rgb(255 255 255 / 3%) 1px, transparent 1px);
	background-size: 7rem 7rem;
	mask-image: radial-gradient(circle at center, #000, transparent 70%);
	content: "";
}

.coming-soon__sky span {
	position: absolute;
	width: 0.32rem;
	border-radius: 50%;
	background: var(--gold-bright);
	box-shadow: 0 0 1rem var(--gold-bright);
	animation: star-breathe 3.8s ease-in-out infinite alternate;
	aspect-ratio: 1;
}

.coming-soon__sky span:nth-child(1) {
	top: 17%;
	left: 16%;
}

.coming-soon__sky span:nth-child(2) {
	top: 29%;
	right: 13%;
	animation-delay: -1s;
}

.coming-soon__sky span:nth-child(3) {
	right: 25%;
	bottom: 18%;
	animation-delay: -2.2s;
}

.coming-soon__sky span:nth-child(4) {
	bottom: 25%;
	left: 22%;
	animation-delay: -0.4s;
}

.coming-soon__sky span:nth-child(5) {
	top: 11%;
	left: 62%;
	animation-delay: -2.8s;
}

.coming-soon__wish-layer {
	position: fixed;
	z-index: 18;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.wish-star {
	--wish-color: var(--cyan);
	--wish-glow: rgb(137 219 226 / 80%);
	position: absolute;
	top: var(--wish-start-y);
	left: -34vw;
	display: block;
	width: 1px;
	height: 1px;
	color: var(--wish-color);
	animation: wish-flight var(--wish-duration) cubic-bezier(0.16, 0.72, 0.35, 1) forwards;
	will-change: transform, opacity;
}

.wish-star__trail {
	position: absolute;
	top: 50%;
	right: 0;
	width: clamp(13rem, 35vw, 35rem);
	height: 0.2rem;
	border-radius: 999px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, currentcolor 35%, transparent), currentcolor);
	box-shadow: 0 0 1rem var(--wish-glow);
	transform: translateY(-50%);
	transform-origin: right center;
}

.wish-star__trail::before {
	position: absolute;
	right: 0;
	bottom: 0.35rem;
	width: 70%;
	height: 1px;
	background: linear-gradient(90deg, transparent, currentcolor);
	content: "";
	opacity: 0.5;
	transform: rotate(-1.6deg);
	transform-origin: right;
}

.wish-star__core {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.85rem;
	border-radius: 50%;
	background: #fff;
	box-shadow:
		0 0 0.55rem #fff,
		0 0 1.4rem 0.45rem var(--wish-glow),
		0 0 3rem 0.8rem var(--wish-glow);
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
}

.wish-star__core::before,
.wish-star__core::after {
	position: absolute;
	top: 50%;
	left: 50%;
	background: currentcolor;
	content: "";
	transform: translate(-50%, -50%);
}

.wish-star__core::before {
	width: 2.8rem;
	height: 1px;
}

.wish-star__core::after {
	width: 1px;
	height: 2.8rem;
}

.wish-star__spark {
	position: absolute;
	width: 0.35rem;
	border-radius: 50%;
	background: currentcolor;
	box-shadow: 0 0 0.7rem currentcolor;
	animation: wish-spark 0.65s ease-out infinite;
	aspect-ratio: 1;
}

.wish-star__spark--one {
	top: -1.5rem;
	left: -3rem;
}

.wish-star__spark--two {
	top: 1.2rem;
	left: -5.5rem;
	animation-delay: -0.3s;
}

.wish-star--violet {
	--wish-color: #aa91ff;
	--wish-glow: rgb(170 145 255 / 88%);
}

.wish-star--gold {
	--wish-color: #f4cc68;
	--wish-glow: rgb(244 204 104 / 92%);
}

.wish-star--gold .wish-star__trail {
	height: 0.28rem;
}

.wish-star--rainbow {
	--wish-color: #fff;
	--wish-glow: rgb(255 255 255 / 95%);
}

.wish-star--rainbow .wish-star__trail {
	height: 0.42rem;
	background: linear-gradient(
		90deg,
		transparent,
		#7ad8ff,
		#9d8eff,
		#ff8ec9,
		#ffd76f,
		#fff
	);
	box-shadow:
		0 -0.45rem 1.1rem rgb(122 216 255 / 55%),
		0 0.45rem 1.1rem rgb(255 142 201 / 55%);
}

.wish-star--rainbow .wish-star__core {
	animation: rainbow-core 0.22s linear infinite;
}

.coming-soon__noise {
	position: absolute;
	z-index: 20;
	inset: -50%;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
	mix-blend-mode: soft-light;
	opacity: 0.055;
	pointer-events: none;
	animation: noise-shift 0.24s steps(2) infinite;
}

.coming-soon__stage {
	position: relative;
	z-index: 4;
	display: grid;
	width: min(100%, 48rem);
	place-items: center;
	text-align: center;
}

.coming-soon__character-card {
	position: relative;
	display: grid;
	width: min(100%, 42rem);
	padding: clamp(2.1rem, 5vw, 3.6rem) clamp(1.2rem, 6vw, 4.2rem) 2rem;
	border: 1px solid var(--line);
	background:
		linear-gradient(135deg, rgb(255 255 255 / 7%), transparent 28%),
		linear-gradient(180deg, rgb(11 25 45 / 72%), rgb(5 11 22 / 88%));
	box-shadow:
		0 2rem 6rem rgb(0 0 0 / 42%),
		inset 0 0 4rem rgb(137 219 226 / 4%);
	place-items: center;
	clip-path: polygon(2rem 0, calc(100% - 2rem) 0, 100% 2rem, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 2rem 100%, 0 calc(100% - 2rem), 0 2rem);
	backdrop-filter: blur(0.6rem);
}

.coming-soon__character-card::before,
.coming-soon__character-card::after {
	position: absolute;
	top: 0.7rem;
	bottom: 0.7rem;
	width: 1px;
	background: linear-gradient(transparent, var(--gold), transparent);
	opacity: 0.35;
	content: "";
}

.coming-soon__character-card::before {
	left: 0.65rem;
}

.coming-soon__character-card::after {
	right: 0.65rem;
}

.coming-soon__card-corner {
	position: absolute;
	z-index: 2;
	width: 2rem;
	height: 2rem;
	border-color: var(--gold-bright);
	opacity: 0.72;
}

.coming-soon__card-corner--tl {
	top: 0.35rem;
	left: 0.35rem;
	border-top: 2px solid;
	border-left: 2px solid;
}

.coming-soon__card-corner--tr {
	top: 0.35rem;
	right: 0.35rem;
	border-top: 2px solid;
	border-right: 2px solid;
}

.coming-soon__card-corner--bl {
	bottom: 0.35rem;
	left: 0.35rem;
	border-bottom: 2px solid;
	border-left: 2px solid;
}

.coming-soon__card-corner--br {
	right: 0.35rem;
	bottom: 0.35rem;
	border-right: 2px solid;
	border-bottom: 2px solid;
}

.coming-soon__eyebrow {
	display: flex;
	margin: 0 0 1.3rem;
	align-items: center;
	gap: 0.8rem;
	color: var(--gold-bright);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: clamp(0.62rem, 1.5vw, 0.75rem);
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.coming-soon__eyebrow span {
	font-size: 0.6rem;
}

.coming-soon__portrait-frame {
	position: relative;
	z-index: 3;
	display: grid;
	width: clamp(8.5rem, 22vw, 12.5rem);
	margin-bottom: 1.3rem;
	place-items: center;
	aspect-ratio: 1;
}

.coming-soon__portrait-frame::before {
	position: absolute;
	inset: 12%;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--violet), var(--cyan));
	box-shadow: 0 0 3rem rgb(137 219 226 / 22%);
	content: "";
}

.coming-soon__portrait {
	position: relative;
	display: block;
	width: 78%;
	height: 78%;
	border: 2px solid var(--ivory);
	border-radius: 50%;
	object-fit: cover;
}

.coming-soon__orbit {
	position: absolute;
	inset: 0;
	border: 1px solid var(--line);
	border-radius: 50%;
	animation: orbit 12s linear infinite;
}

.coming-soon__orbit::before,
.coming-soon__orbit::after {
	position: absolute;
	top: 50%;
	width: 0.45rem;
	border: 1px solid var(--gold-bright);
	background: var(--night);
	content: "";
	aspect-ratio: 1;
	transform: translateY(-50%) rotate(45deg);
}

.coming-soon__orbit::before {
	left: -0.25rem;
}

.coming-soon__orbit::after {
	right: -0.25rem;
}

.coming-soon__orbit--inner {
	inset: 7%;
	border-style: dashed;
	animation-direction: reverse;
	animation-duration: 18s;
}

.coming-soon__level {
	position: absolute;
	right: 3%;
	bottom: 4%;
	display: grid;
	width: 2rem;
	border: 1px solid var(--gold);
	border-radius: 50%;
	color: var(--gold-bright);
	background: var(--night);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.85rem;
	place-items: center;
	text-decoration: none;
	aspect-ratio: 1;
}

.coming-soon__level svg {
	width: 0.9rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.coming-soon__level:hover {
	color: var(--night);
	background: var(--gold-bright);
}

.coming-soon__level:focus-visible {
	outline: 2px solid var(--ivory);
	outline-offset: 3px;
}

.coming-soon__title {
	width: 100%;
}

.coming-soon__title h1 {
	margin: 0;
	color: var(--ivory);
	font-size: clamp(2.25rem, 7vw, 4.8rem);
	font-weight: 500;
	line-height: 0.94;
	letter-spacing: -0.035em;
	text-shadow: 0 0 2rem rgb(137 219 226 / 14%);
}

.coming-soon__title-rule {
	position: relative;
	display: block;
	width: min(17rem, 72%);
	height: 1px;
	margin: 1.35rem auto 0;
	background: linear-gradient(90deg, transparent, var(--gold), transparent);
}

.coming-soon__title-rule::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.55rem;
	border: 1px solid var(--gold-bright);
	background: var(--night);
	content: "";
	aspect-ratio: 1;
	transform: translate(-50%, -50%) rotate(45deg);
}

.coming-soon__message {
	max-width: 31rem;
	margin: 1.2rem auto 1.3rem;
	color: var(--ivory-muted);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: clamp(0.92rem, 2vw, 1.05rem);
	line-height: 1.65;
}

.coming-soon__status {
	display: flex;
	min-width: min(100%, 17rem);
	padding: 0.6rem 1rem;
	border: 1px solid rgb(137 219 226 / 24%);
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	background: rgb(137 219 226 / 5%);
	font-family: ui-sans-serif, system-ui, sans-serif;
}

.coming-soon__status-gem {
	width: 0.65rem;
	border: 1px solid var(--cyan);
	box-shadow: 0 0 0.8rem rgb(137 219 226 / 50%);
	aspect-ratio: 1;
	transform: rotate(45deg);
	animation: gem-pulse 2.5s ease-in-out infinite;
}

.coming-soon__status span:last-child {
	display: grid;
	text-align: left;
}

.coming-soon__status small {
	color: var(--ivory-muted);
	font-size: 0.55rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.coming-soon__status strong {
	color: var(--cyan);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.ring-btn {
	--ring-stroke: 1.6;
	position: relative;
	display: inline-grid;
	width: 4.5rem;
	margin-top: 1.35rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	color: var(--gold-bright);
	background: transparent;
	cursor: pointer;
	opacity: 0.9;
	place-items: center;
	aspect-ratio: 1;
}

.ring-btn:hover {
	opacity: 1;
}

.ring-btn:focus-visible {
	outline: 2px solid var(--ivory);
	outline-offset: 5px;
}

.ring-btn__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.ring-btn__ring-bg,
.ring-btn__ring-fg {
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-width: var(--ring-stroke);
	transform-box: fill-box;
	transform-origin: 50% 50%;
	transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ring-btn__ring-bg {
	opacity: 0.35;
	stroke-dasharray: 260;
	stroke-dashoffset: 70;
	transform: rotate(180deg);
}

.ring-btn__ring-fg {
	opacity: 0.9;
	stroke-dasharray: 283;
	stroke-dashoffset: 70;
}

.ring-btn:hover .ring-btn__ring-bg,
.ring-btn:focus-visible .ring-btn__ring-bg,
.ring-btn.is-magic .ring-btn__ring-bg {
	transform: rotate(450deg);
}

.ring-btn:hover .ring-btn__ring-fg,
.ring-btn:focus-visible .ring-btn__ring-fg,
.ring-btn.is-magic .ring-btn__ring-fg {
	transform: rotate(-480deg);
}

.ring-btn__icon {
	width: 1.4rem;
	height: 1.4rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.25;
}

.coming-soon__hint {
	margin: 0.35rem 0 0;
	color: rgb(246 240 223 / 42%);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.55rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.coming-soon__chibi {
	position: absolute;
	z-index: 5;
	bottom: clamp(3.5rem, 8vh, 6rem);
	display: block;
	width: clamp(5rem, 12vw, 10rem);
	max-height: 28svh;
	object-fit: contain;
	pointer-events: none;
	transform-origin: 50% 85%;
	filter: drop-shadow(0 1rem 1.5rem rgb(0 0 0 / 30%));
}

.coming-soon__chibi--left {
	left: clamp(0.5rem, 7vw, 7rem);
	animation: chibi-left 1.4s steps(1, end) infinite;
}

.coming-soon__chibi--right {
	right: clamp(0.5rem, 7vw, 7rem);
	animation: chibi-right 1.4s steps(1, end) infinite;
}

.coming-soon.is-magic .coming-soon__chibi {
	animation-duration: 0.3s;
}

.coming-soon__footer {
	position: absolute;
	z-index: 6;
	right: 1.25rem;
	bottom: max(1rem, env(safe-area-inset-bottom));
	left: 1.25rem;
	color: rgb(246 240 223 / 38%);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.55rem;
	letter-spacing: 0.16em;
	text-align: center;
	text-transform: uppercase;
}

.coming-soon__footer a {
	color: inherit;
	text-underline-offset: 0.3rem;
}

.coming-soon__footer a:hover {
	color: var(--gold-bright);
}

.coming-soon__footer a:focus-visible {
	outline: 1px solid var(--gold-bright);
	outline-offset: 0.3rem;
}

.privacy-page {
	position: relative;
	display: grid;
	min-height: 100vh;
	min-height: 100svh;
	padding: clamp(1rem, 5vw, 4rem);
	place-items: center;
	overflow-x: clip;
	overflow-y: visible;
	color: var(--ivory);
	background:
		radial-gradient(circle at 50% 30%, rgb(93 113 184 / 24%), transparent 34rem),
		linear-gradient(145deg, #101b31, var(--night) 58%, var(--night-deep));
	isolation: isolate;
}

.privacy-page > .coming-soon__sky,
.privacy-page > .coming-soon__noise {
	position: fixed;
	inset: 0;
}

.privacy-card {
	position: relative;
	z-index: 2;
	min-width: 0;
	width: min(100%, 52rem);
	padding: clamp(2rem, 6vw, 4rem);
	border: 1px solid var(--line);
	background:
		linear-gradient(135deg, rgb(255 255 255 / 7%), transparent 28%),
		rgb(5 11 22 / 92%);
	box-shadow: 0 2rem 6rem rgb(0 0 0 / 42%);
	clip-path: polygon(2rem 0, calc(100% - 2rem) 0, 100% 2rem, 100% calc(100% - 2rem), calc(100% - 2rem) 100%, 2rem 100%, 0 calc(100% - 2rem), 0 2rem);
}

.privacy-card--document {
	width: min(100%, 62rem);
}

.privacy-card__eyebrow {
	margin: 0 0 0.8rem;
	color: var(--gold);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-align: center;
	text-transform: uppercase;
}

.privacy-card h1 {
	margin: 0;
	font-size: clamp(2.7rem, 8vw, 5rem);
	font-weight: 500;
	text-align: center;
}

.privacy-card__content {
	display: grid;
	min-width: 0;
	margin-top: 2.4rem;
	gap: 1.8rem;
}

.privacy-card__content--document > h1 {
	margin: 0;
}

.privacy-card__content--document > h2 {
	margin-top: 2.8rem;
	scroll-margin-top: 1rem;
}

.privacy-card__content--document > h3 {
	margin: 1.5rem 0 0.5rem;
	color: var(--ivory);
	font-size: 1.05rem;
	font-weight: 500;
}

.privacy-card__content--document ul {
	margin: 0.8rem 0 0;
	padding-left: 1.3rem;
	color: var(--ivory-muted);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.92rem;
	line-height: 1.65;
}

.privacy-card__content--document li + li {
	margin-top: 0.55rem;
}

.privacy-card__content--document .index {
	display: grid;
	padding: 1rem 1.2rem 1rem 2.4rem;
	border: 1px solid var(--line);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.35rem 1.5rem;
	background: rgb(137 219 226 / 4%);
}

.privacy-card__content--document .index li + li {
	margin-top: 0;
}

.privacy-card__content--document .seal {
	margin-top: 2.8rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--line);
	font-size: 0.75rem;
}

.privacy-card__content section {
	padding-left: 1rem;
	border-left: 1px solid var(--line);
}

.privacy-card h2 {
	margin: 0 0 0.65rem;
	color: var(--gold-bright);
	font-size: clamp(1.2rem, 3vw, 1.55rem);
	font-weight: 500;
}

.privacy-card p {
	margin: 0.65rem 0 0;
	color: var(--ivory-muted);
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.92rem;
	line-height: 1.7;
}

.privacy-card a {
	color: var(--cyan);
	overflow-wrap: anywhere;
	text-underline-offset: 0.2rem;
}

.privacy-card__back {
	display: inline-flex;
	margin-top: 2.5rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--line);
	align-items: center;
	gap: 0.65rem;
	font-family: ui-sans-serif, system-ui, sans-serif;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.privacy-card__back:hover {
	color: var(--night);
	background: var(--gold-bright);
}

@keyframes chibi-left {
	0%,
	100% {
		transform: rotate(calc(var(--tilt) * -1));
	}

	50% {
		transform: rotate(var(--tilt));
	}
}

@keyframes chibi-right {
	0%,
	100% {
		transform: rotate(var(--tilt));
	}

	50% {
		transform: rotate(calc(var(--tilt) * -1));
	}
}

@keyframes orbit {
	to {
		transform: rotate(360deg);
	}
}

@keyframes slow-orbit {
	to {
		transform: rotate(360deg);
	}
}

@keyframes star-breathe {
	from {
		opacity: 0.25;
		transform: scale(0.65);
	}

	to {
		opacity: 1;
		transform: scale(1.25);
	}
}

@keyframes gem-pulse {
	50% {
		background: var(--cyan);
		box-shadow: 0 0 1.2rem var(--cyan);
	}
}

@keyframes wish-flight {
	0% {
		opacity: 0;
		transform: translate3d(0, 0, 0) rotate(17deg) scale(0.65);
	}

	8% {
		opacity: 1;
	}

	78% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate3d(168vw, var(--wish-drop), 0) rotate(17deg) scale(1.08);
	}
}

@keyframes wish-spark {
	from {
		opacity: 1;
		transform: translate(0, 0) scale(1);
	}

	to {
		opacity: 0;
		transform: translate(-2.5rem, 1rem) scale(0.25);
	}
}

@keyframes rainbow-core {
	0% {
		color: #7ad8ff;
	}

	33% {
		color: #ff8ec9;
	}

	66% {
		color: #ffd76f;
	}

	100% {
		color: #7ad8ff;
	}
}

@keyframes noise-shift {
	0% {
		transform: translate(0, 0);
	}

	33% {
		transform: translate(-5%, 3%);
	}

	66% {
		transform: translate(4%, -4%);
	}

	100% {
		transform: translate(2%, 5%);
	}
}

@media (max-width: 760px) {
	.coming-soon {
		padding: 4.2rem 0.8rem 3rem;
	}

	.coming-soon::before {
		width: 145vw;
	}

	.coming-soon::after {
		width: 112vw;
	}

	.coming-soon__character-card {
		padding: 2rem 1rem 1.4rem;
		clip-path: polygon(1.25rem 0, calc(100% - 1.25rem) 0, 100% 1.25rem, 100% calc(100% - 1.25rem), calc(100% - 1.25rem) 100%, 1.25rem 100%, 0 calc(100% - 1.25rem), 0 1.25rem);
	}

	.coming-soon__portrait-frame {
		width: 8.4rem;
	}

	.coming-soon__message {
		max-width: 25rem;
	}

	.coming-soon__chibi {
		bottom: 2.6rem;
		width: min(24vw, 6.5rem);
	}

	.coming-soon__chibi--left {
		left: 0.25rem;
	}

	.coming-soon__chibi--right {
		right: 0.25rem;
	}

	.coming-soon__footer {
		font-size: 0.45rem;
	}

	.privacy-page {
		padding: 0.75rem;
		overflow-x: clip;
		overflow-y: visible;
	}

	.privacy-card {
		padding: 2.5rem 1.25rem;
		clip-path: polygon(1.25rem 0, calc(100% - 1.25rem) 0, 100% 1.25rem, 100% calc(100% - 1.25rem), calc(100% - 1.25rem) 100%, 1.25rem 100%, 0 calc(100% - 1.25rem), 0 1.25rem);
	}

	.privacy-card h1 {
		font-size: clamp(1.9rem, 9vw, 2.7rem);
	}

	.privacy-card__content--document .index {
		grid-template-columns: 1fr;
	}
}

@media (max-height: 760px) and (orientation: landscape) {
	.coming-soon {
		padding: 2.7rem 1rem 2rem;
	}

	.coming-soon__character-card {
		grid-template-columns: 8rem 1fr;
		padding: 1.3rem 2rem;
		column-gap: 1.5rem;
	}

	.coming-soon__eyebrow {
		grid-column: 1 / -1;
		margin-bottom: 0;
	}

	.coming-soon__portrait-frame {
		width: 7rem;
		grid-row: 2 / 6;
	}

	.coming-soon__title,
	.coming-soon__message,
	.coming-soon__status {
		grid-column: 2;
	}

	.coming-soon__message {
		margin: 0.6rem auto;
	}

	.ring-btn,
	.coming-soon__hint,
	.coming-soon__footer {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.coming-soon::after,
	.coming-soon__noise,
	.coming-soon__orbit,
	.coming-soon__sky span,
	.coming-soon__status-gem,
	.wish-star__spark,
	.coming-soon__chibi {
		animation: none;
	}

	.wish-star {
		animation-duration: 0.3s;
	}

	.ring-btn__ring-bg,
	.ring-btn__ring-fg {
		transition-duration: 1ms;
	}
}
