/* Homepage-only brand openings. Nothing in this file targets interior routes. */
.wec-f__opening {
	position: absolute;
	z-index: 40;
	top: 0;
	left: 0;
	width: 100%;
	height: min(900px,100vh);
	height: min(900px,100svh);
	overflow: hidden;
	pointer-events: none;
	color: #ecf2ff;
	background: #030a20;
	opacity: 0;
	visibility: hidden;
	isolation: isolate;
}
.wec-home-opening-prep .wec-f__opening,
.wec-f.is-home-opening-running .wec-f__opening {
	opacity: 1;
	visibility: visible;
}
.wec-f.is-home-opening-revealing .wec-f__opening {
	opacity: 0;
	visibility: hidden;
	transition: opacity .62s cubic-bezier(.4,0,1,1), visibility 0s .62s;
}
.wec-home-opening-prep .wec-f :is(.wec-f__nav,.wec-f__header-tools),
.wec-f.is-home-opening-running:not(.is-home-opening-revealing) :is(.wec-f__nav,.wec-f__header-tools) {
	opacity: 0;
	transform: translateY(-10px);
}
.wec-home-opening-prep .wec-f .wec-f__header .wec-f__brand,
.wec-f.is-home-opening-running:not(.is-home-opening-revealing) .wec-f__header .wec-f__brand { opacity: 0; }
.wec-home-opening-prep .wec-f .wec-f__hero-copy > *,
.wec-f.is-home-opening-running:not(.is-home-opening-revealing) .wec-f__hero-copy > * {
	opacity: 0;
	transform: translateY(22px);
}
.wec-f :is(.wec-f__nav,.wec-f__header-tools,.wec-f__header .wec-f__brand) {
	transition: opacity .42s ease, transform .58s cubic-bezier(.22,1,.36,1);
}
.wec-f .wec-f__hero-copy > * {
	transition: opacity .62s ease, transform .78s cubic-bezier(.22,1,.36,1);
}
.wec-f.is-home-opening-revealing .wec-f__hero-copy > * { opacity: 1; transform: none; }
.wec-f.is-home-opening-revealing .wec-f__hero-copy > :nth-child(2) { transition-delay: .08s; }
.wec-f.is-home-opening-revealing .wec-f__hero-copy > :nth-child(3) { transition-delay: .16s; }

.wec-f__opening-image,
.wec-f__opening-facets,
.wec-f__opening-network,
.wec-f__opening-nodes,
.wec-f__opening-orbits { position: absolute; inset: 0; }
.wec-f__opening-network { display: none; }
.wec-f__opening-image span,
.wec-f__opening-facets span,
.wec-f__opening-nodes i,
.wec-f__opening-orbits i { position: absolute; display: block; }
.wec-f__opening-logo {
	--wec-opening-dock-x: 0px;
	--wec-opening-dock-y: 0px;
	--wec-opening-dock-scale: 1;
	position: absolute;
	z-index: 8;
	top: 50%;
	left: 50%;
	width: min(420px,62vw);
	transform: translate(-50%,-50%);
	transform-origin: center;
	will-change: transform,opacity;
}
.wec-f__opening-logo .wec-a__logo { display: block; width: 100%; height: auto; filter: drop-shadow(0 0 28px rgba(147,228,214,.16)); }
.wec-f__opening-logo .wec-a__logo g > * { stroke-dasharray: 300; stroke-dashoffset: 300; }
.wec-f__opening-logo .wec-a__logo text { opacity: 0; clip-path: inset(0 100% 0 0); }
.wec-f.is-home-opening-docking .wec-f__opening-logo {
	transform: translate(calc(-50% + var(--wec-opening-dock-x)),calc(-50% + var(--wec-opening-dock-y))) scale(var(--wec-opening-dock-scale));
	transition: transform .78s cubic-bezier(.22,1,.36,1), opacity .24s ease .56s;
}
.wec-f.is-home-opening-revealing .wec-f__opening-logo { opacity: 0; }
.wec-f__opening-validation {
	position: absolute;
	z-index: 7;
	top: calc(50% + 102px);
	left: 50%;
	display: flex;
	align-items: center;
	gap: 11px;
	color: #b7cbc8;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .18em;
	opacity: 0;
	transform: translateX(-50%);
}
.wec-f__opening-validation i { width: 7px; height: 7px; border: 1px solid #93e4d6; border-radius: 50%; box-shadow: 0 0 0 6px rgba(147,228,214,.08); }

/* A — orbital facets assemble above the existing photographic cover. */
.wec-design-preview-a .wec-f__opening {
	background: radial-gradient(circle at 50% 50%,rgba(12,43,66,.36),transparent 32%),linear-gradient(90deg,rgba(3,10,32,.62),rgba(3,10,32,.16) 58%,rgba(3,10,32,.4));
}
.wec-design-preview-a .wec-f__opening-facets {
	inset: auto;
	top: 50%;
	left: 50%;
	width: clamp(340px,45vw,660px);
	aspect-ratio: 1;
	transform: translate(-50%,-50%);
}
.wec-design-preview-a .wec-f__opening-facets span {
	inset: 0;
	border: 1px solid rgba(147,228,214,.52);
	border-radius: 50%;
	background: radial-gradient(circle at 48% 46%,rgba(147,228,214,.09),rgba(21,55,84,.3) 60%,transparent 61%);
	opacity: 0;
	transform: translate3d(var(--facet-x),var(--facet-y),0) rotate(var(--facet-r)) scale(.72);
	will-change: transform,opacity;
}
.wec-design-preview-a .wec-f__opening-facets span:nth-child(1) { --facet-x:-76vw; --facet-y:-28vh; --facet-r:-52deg; clip-path: polygon(0 0,52% 0,49% 51%,0 58%); }
.wec-design-preview-a .wec-f__opening-facets span:nth-child(2) { --facet-x:68vw; --facet-y:-34vh; --facet-r:43deg; clip-path: polygon(48% 0,100% 0,100% 58%,51% 51%); }
.wec-design-preview-a .wec-f__opening-facets span:nth-child(3) { --facet-x:-82vw; --facet-y:32vh; --facet-r:37deg; clip-path: polygon(0 42%,49% 49%,52% 100%,0 100%); }
.wec-design-preview-a .wec-f__opening-facets span:nth-child(4) { --facet-x:76vw; --facet-y:38vh; --facet-r:-47deg; clip-path: polygon(51% 49%,100% 42%,100% 100%,48% 100%); }
.wec-design-preview-a .wec-f__opening-facets span:nth-child(5) { --facet-x:0; --facet-y:-74vh; --facet-r:90deg; clip-path: polygon(28% 0,72% 0,58% 50%,42% 50%); border-color: rgba(118,157,211,.4); }
.wec-design-preview-a .wec-f__opening-facets span:nth-child(6) { --facet-x:0; --facet-y:72vh; --facet-r:-80deg; clip-path: polygon(42% 50%,58% 50%,72% 100%,28% 100%); border-color: rgba(118,157,211,.4); }
.wec-design-preview-a .wec-f__opening-orbits { inset: auto; top: 50%; left: 50%; width: clamp(370px,49vw,720px); aspect-ratio: 1; transform: translate(-50%,-50%); }
.wec-design-preview-a .wec-f__opening-orbits i { inset: 0; border: 1px solid rgba(147,228,214,.2); border-radius: 50%; opacity: 0; }
.wec-design-preview-a .wec-f__opening-orbits i:nth-child(2) { inset: 9%; transform: rotate(62deg) scaleX(.42); border-color: rgba(236,242,255,.2); }
.wec-design-preview-a .wec-f__opening-orbits i:nth-child(3) { inset: 9%; transform: rotate(-62deg) scaleX(.42); border-color: rgba(118,157,211,.32); }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span { animation: wec-home-a-facet 3.35s cubic-bezier(.22,1,.36,1) both; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span:nth-child(2) { animation-delay: .06s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span:nth-child(3) { animation-delay: .12s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span:nth-child(4) { animation-delay: .18s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span:nth-child(5) { animation-delay: .24s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-facets span:nth-child(6) { animation-delay: .3s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-orbits i { animation: wec-home-a-orbit 2.9s .22s cubic-bezier(.22,1,.36,1) both; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-orbits i:nth-child(2) { animation-delay: .34s; }
.wec-design-preview-a .is-home-opening-active .wec-f__opening-orbits i:nth-child(3) { animation-delay: .46s; }

/* B — structured network validation and scan reveal. */
.wec-design-preview-b .wec-f__opening { background: radial-gradient(circle at 50% 50%,#102a45 0%,#07162d 30%,#020713 72%); }
.wec-design-preview-b .wec-f__opening::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(147,228,214,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(147,228,214,.07) 1px,transparent 1px);
	background-size: 72px 72px;
	-webkit-mask-image: radial-gradient(circle at 50% 50%,#000,transparent 72%);
	mask-image: radial-gradient(circle at 50% 50%,#000,transparent 72%);
}
.wec-design-preview-b .wec-f__opening::after {
	content: "";
	position: absolute;
	z-index: 6;
	top: 0;
	bottom: 0;
	left: -28%;
	width: 18%;
	background: linear-gradient(90deg,transparent,rgba(147,228,214,.22),rgba(236,242,255,.32),transparent);
	filter: blur(7px);
	transform: skewX(-12deg);
}
.wec-design-preview-b .wec-f__opening-network { display: block; z-index: 2; width: 100%; height: 100%; }
.wec-design-preview-b .wec-f__opening-network path { fill: none; stroke: rgba(147,228,214,.52); stroke-width: 1.15; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.wec-design-preview-b .wec-f__opening-network path:nth-child(even) { stroke: rgba(118,157,211,.5); }
.wec-f__opening-nodes i { z-index: 4; width: 8px; height: 8px; border: 2px solid #93e4d6; background: #07162d; box-shadow: 0 0 0 7px rgba(147,228,214,.08),0 0 18px rgba(147,228,214,.35); opacity: 0; transform: scale(.4); }
.wec-f__opening-nodes i:nth-child(1) { top: 37%; left: 36%; }
.wec-f__opening-nodes i:nth-child(2) { top: 61%; left: 39%; }
.wec-f__opening-nodes i:nth-child(3) { top: 34%; right: 35%; }
.wec-f__opening-nodes i:nth-child(4) { top: 63%; right: 38%; }
.wec-f__opening-nodes i:nth-child(5) { top: 17%; left: 28%; }
.wec-f__opening-nodes i:nth-child(6) { bottom: 16%; right: 28%; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path { animation: wec-home-b-line 1.95s cubic-bezier(.22,1,.36,1) forwards; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path:nth-child(2) { animation-delay: .08s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path:nth-child(3) { animation-delay: .16s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path:nth-child(4) { animation-delay: .24s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path:nth-child(5) { animation-delay: .32s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-network path:nth-child(6) { animation-delay: .4s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-nodes i { animation: wec-home-b-node .65s .9s cubic-bezier(.22,1,.36,1) forwards,wec-home-b-pulse 1.2s 1.55s ease-in-out infinite; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening::after { animation: wec-home-b-scan 1.45s 1.75s cubic-bezier(.22,1,.36,1) both; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-validation { animation: wec-home-b-verified .5s 2.15s ease forwards; }
.wec-design-preview-b .wec-f__hero::after {
	content: "";
	position: absolute;
	z-index: 2;
	inset: 106px 0 0;
	pointer-events: none;
	background-image: linear-gradient(rgba(147,228,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(118,157,211,.09) 1px,transparent 1px);
	background-size: 92px 92px;
	opacity: var(--wec-home-grid-opacity,.05);
	-webkit-mask-image: linear-gradient(90deg,#000,transparent 64%);
	mask-image: linear-gradient(90deg,#000,transparent 64%);
}
.wec-design-preview-b .wec-f__hero-thread { opacity: var(--wec-home-thread-opacity,.52); filter: drop-shadow(0 0 var(--wec-home-thread-glow,2px) rgba(147,228,214,.55)); }

/* C — the image is rebuilt from the same orbital language as the mark. */
.wec-design-preview-c .wec-f__opening {
	background-color: #020713;
	background-image: radial-gradient(ellipse at 52% 44%,rgba(24,59,95,.5),transparent 42%),linear-gradient(rgba(120,173,214,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(120,173,214,.045) 1px,transparent 1px);
	background-size: auto,92px 92px,92px 92px;
}
.wec-design-preview-c .wec-f__opening::before,
.wec-design-preview-c .wec-f__opening::after {
	content: "";
	position: absolute;
	z-index: 3;
	inset: -12%;
	background: linear-gradient(132deg,rgba(3,12,29,.98),rgba(10,34,62,.97) 62%,rgba(4,16,37,.94));
	clip-path: polygon(0 0,58% 0,36% 100%,0 100%);
	transform: translateX(-8%);
}
.wec-design-preview-c .wec-f__opening::after {
	background: linear-gradient(145deg,rgba(7,27,52,.96),rgba(2,10,26,.98));
	clip-path: polygon(71% 0,100% 0,100% 100%,47% 100%);
	transform: translateX(8%);
}
.wec-design-preview-c .wec-f__opening-image { z-index: 2; }
.wec-design-preview-c .wec-f__opening-image span {
	inset: -1px;
	background-image: linear-gradient(rgba(3,10,32,.22),rgba(3,10,32,.48)),var(--wec-opening-image);
	background-size: cover;
	background-position: 61% 49%;
	opacity: 0;
	will-change: transform,opacity;
}
.wec-design-preview-c .wec-f__opening-image span:nth-child(1) { clip-path: polygon(0 0,37% 0,27% 52%,0 63%); transform: translate(-28%,-26%) rotate(-8deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-image span:nth-child(2) { clip-path: polygon(37% 0,68% 0,58% 49%,27% 52%); transform: translate(0,-36%) rotate(7deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-image span:nth-child(3) { clip-path: polygon(68% 0,100% 0,100% 58%,58% 49%); transform: translate(28%,-24%) rotate(-6deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-image span:nth-child(4) { clip-path: polygon(0 63%,27% 52%,41% 100%,0 100%); transform: translate(-30%,26%) rotate(8deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-image span:nth-child(5) { clip-path: polygon(27% 52%,58% 49%,67% 100%,41% 100%); transform: translate(0,34%) rotate(-7deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-image span:nth-child(6) { clip-path: polygon(58% 49%,100% 58%,100% 100%,67% 100%); transform: translate(30%,24%) rotate(6deg) scale(.7); }
.wec-design-preview-c .wec-f__opening-orbits { z-index: 5; inset: auto; top: 50%; left: 50%; width: clamp(380px,48vw,700px); aspect-ratio: 1; transform: translate(-50%,-50%); }
.wec-design-preview-c .wec-f__opening-orbits i { inset: 0; border: 1px solid rgba(236,242,255,.32); border-radius: 50%; opacity: 0; transform: scale(.4) rotate(-24deg); }
.wec-design-preview-c .wec-f__opening-orbits i:nth-child(2) { inset: 9%; border-color: rgba(147,228,214,.55); transform: scale(.38) rotate(58deg) scaleX(.42); }
.wec-design-preview-c .wec-f__opening-orbits i:nth-child(3) { inset: 9%; border-color: rgba(118,157,211,.62); transform: scale(.38) rotate(-58deg) scaleX(.42); }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span { animation: wec-home-c-piece 3.45s .25s cubic-bezier(.22,1,.36,1) forwards; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span:nth-child(2) { animation-delay: .22s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span:nth-child(3) { animation-delay: .29s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span:nth-child(4) { animation-delay: .36s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span:nth-child(5) { animation-delay: .43s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-image span:nth-child(6) { animation-delay: .5s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-orbits i { animation: wec-home-c-orbit 3.1s .35s cubic-bezier(.22,1,.36,1) forwards; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-orbits i:nth-child(2) { animation-delay: .47s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-orbits i:nth-child(3) { animation-delay: .59s; }
.wec-design-preview-c .is-home-opening-docking .wec-f__opening::before { transform: translateX(-84%); transition: transform 1.02s cubic-bezier(.22,1,.36,1); }
.wec-design-preview-c .is-home-opening-docking .wec-f__opening::after { transform: translateX(84%); transition: transform 1.02s cubic-bezier(.22,1,.36,1); }

/* The official mark is the shared protagonist; each variant changes its construction. */
.wec-f.is-home-opening-active .wec-f__opening-logo .wec-a__logo g > * { animation: wec-home-mark 1.8s .55s cubic-bezier(.22,1,.36,1) forwards; }
.wec-f.is-home-opening-active .wec-f__opening-logo .wec-a__logo text { animation: wec-home-wordmark .85s 1.9s cubic-bezier(.22,1,.36,1) forwards; }
.wec-f.is-home-opening-active .wec-f__opening-logo .wec-a__logo text:last-child { animation-delay: 2.03s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-logo .wec-a__logo g > * { animation-duration: 1.45s; animation-delay: .45s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-logo .wec-a__logo text { animation-delay: 1.65s; }
.wec-design-preview-b .is-home-opening-active .wec-f__opening-logo .wec-a__logo text:last-child { animation-delay: 1.78s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-logo .wec-a__logo g > * { animation-duration: 2.25s; animation-delay: .68s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-logo .wec-a__logo text { animation-delay: 2.65s; }
.wec-design-preview-c .is-home-opening-active .wec-f__opening-logo .wec-a__logo text:last-child { animation-delay: 2.78s; }

@keyframes wec-home-mark { to { stroke-dashoffset: 0; } }
@keyframes wec-home-wordmark { to { opacity: 1; clip-path: inset(0); } }
@keyframes wec-home-a-facet {
	0% { opacity: 0; transform: translate3d(var(--facet-x),var(--facet-y),0) rotate(var(--facet-r)) scale(.72); }
	46%,68% { opacity: .82; transform: translate3d(0,0,0) rotate(0) scale(1); }
	100% { opacity: 0; transform: translate3d(calc(var(--facet-x) * -.16),calc(var(--facet-y) * -.16),0) rotate(calc(var(--facet-r) * -.18)) scale(1.22); }
}
@keyframes wec-home-a-orbit { 0% { opacity: 0; scale: .62; } 58% { opacity: .52; } 100% { opacity: 0; scale: 1.14; } }
@keyframes wec-home-b-line { 0% { opacity: 0; stroke-dashoffset: 1; } 18% { opacity: 1; } 100% { opacity: .8; stroke-dashoffset: 0; } }
@keyframes wec-home-b-node { to { opacity: 1; transform: scale(1); } }
@keyframes wec-home-b-pulse { 50% { box-shadow: 0 0 0 11px rgba(147,228,214,.03),0 0 24px rgba(147,228,214,.7); } }
@keyframes wec-home-b-scan { from { left: -28%; opacity: 0; } 22% { opacity: 1; } to { left: 112%; opacity: 0; } }
@keyframes wec-home-b-verified { to { opacity: 1; transform: translateX(-50%) translateY(8px); } }
@keyframes wec-home-c-piece { to { opacity: 1; transform: translate(0,0) rotate(0) scale(1); } }
@keyframes wec-home-c-orbit { 0% { opacity: 0; } 100% { opacity: .62; transform: scale(1) rotate(0); } }

@media (max-width: 760px) {
	.wec-f__opening { height: 100vh; }
	.wec-f__opening { height: 100svh; }
	.wec-f__opening-logo { top: 43%; width: min(340px,76vw); }
	.wec-f__opening-validation { top: calc(43% + 88px); }
	.wec-design-preview-a .wec-f__opening-facets { width: min(92vw,520px); }
	.wec-design-preview-a .wec-f__opening-orbits,
	.wec-design-preview-c .wec-f__opening-orbits { top: 43%; width: min(102vw,560px); }
	.wec-design-preview-b .wec-f__opening-network { transform: scale(1.45); transform-origin: center; }
	.wec-design-preview-c .wec-f__opening-image span:nth-child(2),
	.wec-design-preview-c .wec-f__opening-image span:nth-child(5) { display: none; }
	.wec-design-preview-c .wec-f__opening-image span:nth-child(1) { clip-path: polygon(0 0,50% 0,50% 50%,0 50%); }
	.wec-design-preview-c .wec-f__opening-image span:nth-child(3) { clip-path: polygon(50% 0,100% 0,100% 50%,50% 50%); }
	.wec-design-preview-c .wec-f__opening-image span:nth-child(4) { clip-path: polygon(0 50%,50% 50%,50% 100%,0 100%); }
	.wec-design-preview-c .wec-f__opening-image span:nth-child(6) { clip-path: polygon(50% 50%,100% 50%,100% 100%,50% 100%); }
}

@media (prefers-reduced-motion: reduce) {
	.wec-f__opening { display: none !important; }
	.wec-f :is(.wec-f__nav,.wec-f__header-tools,.wec-f__header .wec-f__brand),
	.wec-f .wec-f__hero-copy > * { opacity: 1 !important; transform: none !important; transition: none !important; }
}
