/* Bhinder Villa Site Notice — full-screen Maintenance / Coming Soon page */

html, body.bv-sn-screen-body { margin: 0; padding: 0; min-height: 100%; background: #08201a; }

.bv-sn.bv-sn-screen {
	position: relative; isolation: isolate; overflow: hidden;
	min-height: 100vh; min-height: 100dvh;
	display: grid; place-items: center;
	background:
		radial-gradient(70% 55% at 50% 38%, #1d5a40 0%, rgba(29, 90, 64, 0) 72%),
		linear-gradient(180deg, #0f3324 0%, #08201a 60%, #05150f 100%);
}

/* Background: botanical pattern, warm glow, twinkling sparks */
.bv-sn .bv-sn-screen__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.bv-sn .bv-sn-pattern {
	position: absolute; inset: 0; opacity: .13;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%23e3bb5c' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M24 160C56 128 78 96 90 46'/%3E%3Cpath d='M44 136c-16-2-25-13-25-25 14 0 25 9 25 25Z'/%3E%3Cpath d='M58 114c16 0 27-9 29-23-16 0-27 9-29 23Z'/%3E%3Cpath d='M72 90c-14-4-21-16-19-28 14 2 21 14 19 28Z'/%3E%3Cpath d='M90 46c4-12 14-19 26-19-2 12-12 19-26 19Z'/%3E%3Cpath d='M84 64c-6-11-4-23 4-31 6 11 4 23-4 31Z'/%3E%3Ccircle cx='150' cy='150' r='1.6'/%3E%3Ccircle cx='140' cy='40' r='1.2'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 180px 180px;
	-webkit-mask-image: radial-gradient(ellipse 65% 60% at 50% 45%, transparent 35%, #000 85%);
	mask-image: radial-gradient(ellipse 65% 60% at 50% 45%, transparent 35%, #000 85%);
}
.bv-sn .bv-sn-glow {
	position: absolute; left: 50%; top: 44%;
	width: min(1200px, 160vw); height: 900px;
	transform: translate(-50%, -50%);
	background: radial-gradient(closest-side, rgba(243, 210, 122, .2), rgba(243, 210, 122, .05) 55%, transparent);
}
.bv-sn .bv-sn-spark {
	position: absolute; left: var(--x); top: var(--y);
	width: var(--s); height: var(--s); border-radius: 50%;
	background: #fff4c8; box-shadow: 0 0 8px 2px rgba(243, 210, 122, .65);
	opacity: 0; animation: bv-sn-twinkle 4.2s ease-in-out var(--d) infinite;
}

/* Gold frame with corner flourishes */
.bv-sn .bv-sn-frame {
	position: absolute; inset: 18px; z-index: 0; pointer-events: none;
	border: 1px solid rgba(212, 165, 60, .5);
}
.bv-sn .bv-sn-frame::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(212, 165, 60, .22); }
.bv-sn .bv-sn-corner { position: absolute; width: 132px; height: 132px; filter: drop-shadow(0 0 6px rgba(243, 210, 122, .28)); }
.bv-sn .bv-sn-corner svg { width: 100%; height: 100%; }
.bv-sn .bv-sn-corner--tl { top: -5px; left: -5px; }
.bv-sn .bv-sn-corner--tr { top: -5px; right: -5px; transform: scaleX(-1); }
.bv-sn .bv-sn-corner--bl { bottom: -5px; left: -5px; transform: scaleY(-1); }
.bv-sn .bv-sn-corner--br { bottom: -5px; right: -5px; transform: scale(-1); }

/* Layout */
.bv-sn .bv-sn-screen__wrap {
	position: relative; z-index: 1; width: 100%;
	display: flex; flex-direction: column; align-items: center; gap: 24px;
	padding: max(64px, env(safe-area-inset-top)) 28px max(52px, env(safe-area-inset-bottom));
}

.bv-sn .bv-sn-card {
	position: relative; isolation: isolate; overflow: hidden;
	width: 100%; max-width: 700px;
	padding: 30px 48px 44px;
	border: 2px solid transparent; border-radius: 24px;
	background: linear-gradient(180deg, #fdf9ec 0%, #f8eed4 100%) padding-box, var(--bv-metal-d) border-box;
	text-align: center;
	box-shadow:
		0 0 0 8px rgba(212, 165, 60, .08),
		0 0 90px rgba(243, 210, 122, .14),
		0 60px 120px -40px rgba(0, 0, 0, .85),
		0 24px 48px -24px rgba(0, 0, 0, .6);
	animation: bv-sn-rise 1.1s var(--bv-ease) both;
}
.bv-sn .bv-sn-card::before {
	content: ""; position: absolute; inset: 9px; z-index: 2; pointer-events: none;
	border: 1px solid rgba(184, 134, 42, .38); border-radius: 16px;
}
.bv-sn .bv-sn-card .bv-sn-logo { width: min(450px, 100%); margin: -4px auto 22px; }
.bv-sn .bv-sn-card .bv-sn-contact { margin: 34px -48px -44px; padding: 22px 24px 24px; }

/* Staggered entrance */
.bv-sn .bv-sn-card .bv-sn-logo,
.bv-sn .bv-sn-card .bv-sn-content > *,
.bv-sn .bv-sn-card .bv-sn-contact { animation: bv-sn-fade .9s var(--bv-ease) both; }
.bv-sn .bv-sn-card .bv-sn-logo { animation-delay: .15s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(1) { animation-delay: .32s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(2) { animation-delay: .39s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(3) { animation-delay: .46s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(4) { animation-delay: .53s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(5) { animation-delay: .60s; }
.bv-sn .bv-sn-card .bv-sn-content > :nth-child(6) { animation-delay: .67s; }
.bv-sn .bv-sn-card .bv-sn-contact { animation-delay: .74s; }

.bv-sn .bv-sn-screen__foot {
	margin: 0; max-width: 700px; text-align: center;
	font: 500 11.5px/1.8 var(--bv-display); letter-spacing: .16em; text-transform: uppercase;
	color: rgba(243, 210, 122, .78); text-wrap: balance;
	animation: bv-sn-fade 1s .85s var(--bv-ease) both;
}

.bv-sn a.bv-sn-preview-pill {
	position: fixed; left: 50%; bottom: 34px; transform: translateX(-50%); z-index: 10;
	padding: 10px 18px; border-radius: 999px;
	background: var(--bv-metal); color: var(--bv-green-deep);
	font: 700 11px/1 var(--bv-display); letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
	box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .6);
}

.bv-sn .bv-sn-nw { white-space: nowrap; }

@keyframes bv-sn-twinkle { 0%, 100% { opacity: 0; transform: scale(.4); } 50% { opacity: 1; transform: scale(1); } }
@keyframes bv-sn-rise { from { opacity: 0; transform: translateY(30px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes bv-sn-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 600px) {
	.bv-sn .bv-sn-frame { inset: 8px; }
	.bv-sn .bv-sn-frame::before { inset: 5px; }
	.bv-sn .bv-sn-corner { width: 74px; height: 74px; }
	.bv-sn .bv-sn-screen__wrap { padding: 40px 20px 40px; gap: 18px; }
	.bv-sn .bv-sn-card { padding: 22px 20px 30px; border-radius: 20px; }
	.bv-sn .bv-sn-card::before { inset: 6px; border-radius: 14px; }
	.bv-sn .bv-sn-card .bv-sn-contact { margin: 28px -20px -30px; padding: 20px 16px 22px; }
	.bv-sn .bv-sn-screen__foot { font-size: 10px; letter-spacing: .1em; padding: 0 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.bv-sn .bv-sn-spark { animation: none; opacity: .6; }
}
