:root {
  --portal-bg: #f3f3f3;
  --portal-paper: #fbfbfb;
  --portal-ink: #292929;
  --portal-muted: #686868;
  --portal-line: #d4d4d4;
  --portal-gradient-ia: linear-gradient(135deg, #00e5ff, #1abc9c);
  --portal-gradient-logo: linear-gradient(135deg, #1abc9c, #34495e);
  --portal-gradient-web: linear-gradient(135deg, #34495e, #2980b9);
  --portal-gradient-3d: linear-gradient(135deg, #2980b9, #2ecc71);
  --portal-gradient-illustration: linear-gradient(135deg, #2ecc71, #f1c40f);
  --portal-gradient-bd: linear-gradient(135deg, #f1c40f, #9b59b6);
  --portal-spectrum: linear-gradient(90deg, #00e5ff, #1abc9c 18%, #34495e 36%, #2980b9 53%, #2ecc71 68%, #f1c40f 84%, #9b59b6);
  --lf-color-background: var(--portal-bg);
  --lf-color-surface: var(--portal-paper);
  --lf-color-text: var(--portal-ink);
  --lf-color-muted: var(--portal-muted);
  --lf-color-border: var(--portal-line);
}

html { scroll-padding-top: 8rem; }
body { overflow-x: clip; background: var(--portal-bg); color: var(--portal-ink); }
.lf-c-main { overflow: clip; }

[data-lf-section-surface] {
	isolation: isolate;
	background: transparent !important;
	border-color: var(--lf-section-surface-border, transparent);
	border-width: var(--lf-section-surface-border-width, 0);
	box-shadow: var(--lf-section-surface-shadow, none);
}
[data-lf-section-surface]::before,
[data-lf-section-surface]::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	content: "";
	pointer-events: none;
}
[data-lf-section-surface]::before {
	background: var(--lf-section-surface-base);
	opacity: var(--lf-section-surface-opacity, 1);
	backdrop-filter: blur(var(--lf-section-surface-blur, 0)) saturate(var(--lf-section-surface-saturation, 100%));
}
[data-lf-section-surface]::after {
	background-color: var(--lf-section-surface-texture-tint, transparent);
	background-image: var(--lf-section-surface-texture-image, none);
	background-position: var(--lf-section-surface-texture-position, center);
	background-repeat: var(--lf-section-surface-texture-repeat, no-repeat);
	background-size: var(--lf-section-surface-texture-size, cover);
	background-blend-mode: var(--lf-section-surface-texture-blend, normal);
	opacity: var(--lf-section-surface-texture-opacity, 0);
}
.lf-c-header { border-bottom-color: rgb(0 0 0 / 9%); background: rgb(246 246 246 / 88%); color: var(--portal-ink); backdrop-filter: blur(18px) saturate(.2); }
.lf-c-header.is-scrolled { background: rgb(246 246 246 / 96%); }
.lf-c-header__inner { min-height: 11rem; }
.lf-c-header.is-scrolled .lf-c-header__inner { min-height: 8.5rem; }
.lf-c-branding { max-width: none; color: var(--portal-ink); }
.lf-portail-brand { position: relative; display: grid; width: 15rem; height: 10rem; aspect-ratio: 2251 / 1501; flex: 0 0 auto; line-height: 1; }
.lf-portail-brand__logo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; transition: opacity .5s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.lf-portail-brand__logo.is-neutral { opacity: 1; }
.lf-portail-brand__logo.is-color { opacity: 0; transform: scale(.96); }
.lf-portail-brand__logo.is-footer { opacity: 0; pointer-events: none; }
.lf-c-branding:hover .lf-portail-brand__logo.is-neutral,
.lf-c-branding:focus-within .lf-portail-brand__logo.is-neutral { opacity: 0; transform: scale(1.025); }
.lf-c-branding:hover .lf-portail-brand__logo.is-color,
.lf-c-branding:focus-within .lf-portail-brand__logo.is-color { opacity: 1; transform: scale(1); }
.lf-c-header.is-scrolled .lf-portail-brand { width: 12rem; height: 8rem; }
.lf-c-navigation__list a { color: var(--lf-navigation-link, #555); }
.lf-c-navigation__list a:hover { color: var(--lf-navigation-hover, #111); }
.lf-c-header__cta { border-color: #202020; background: #202020; color: #fff; font-weight: 800 !important; box-shadow: var(--lf-shadow-library-shadow_03); }
.lf-c-header__cta:hover, .lf-c-header__cta:focus-visible { border-color: transparent; background: var(--lf-gradient-library-multi_primary, var(--portal-spectrum)); color: #fff; font-weight: 900 !important; box-shadow: var(--lf-shadow-library-shadow_06); }

.lf-portail-boreal { display: grid; height: 3px; grid-template-columns: repeat(6, 1fr); opacity: .16; filter: grayscale(1); transition: height .45s ease, opacity .45s ease, filter .6s ease, box-shadow .45s ease; }
.lf-portail-boreal span { background: #444; }
.lf-portail-boreal .is-ia { background: var(--portal-gradient-ia); }
.lf-portail-boreal .is-logo { background: var(--portal-gradient-logo); }
.lf-portail-boreal .is-web { background: var(--portal-gradient-web); }
.lf-portail-boreal .is-d3 { background: var(--portal-gradient-3d); }
.lf-portail-boreal .is-illustration { background: var(--portal-gradient-illustration); }
.lf-portail-boreal .is-bd { background: var(--portal-gradient-bd); }
.lf-c-header:hover .lf-portail-boreal,
.lf-c-header:focus-within .lf-portail-boreal { height: 14px; opacity: 1; filter: none; box-shadow: var(--lf-shadow-library-shadow_06); }
.lf-portail-hero { position: relative; min-height: min(76vh, 54rem); border-bottom: 1px solid var(--portal-line); background: radial-gradient(circle at 76% 28%, rgb(0 0 0 / 4%), transparent 25%), var(--portal-bg); }
.lf-portail-hero__layout { display: grid; min-height: inherit; grid-template-columns: minmax(0, 1.05fr) minmax(23rem, .95fr); align-items: center; gap: 0; padding-block: clamp(5rem, 10vw, 9rem); }
.lf-portail-hero__copy { position: relative; z-index: 19; }
.lf-portail-eyebrow { margin: 0 0 1rem; color: #777; font-size: .75rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.lf-portail-hero h1 { max-width: 12ch; margin: 0; color: var(--portal-ink); font-size: clamp(3.4rem, 7vw, 7.5rem); font-weight: 900; letter-spacing: -.075em; line-height: .82; }
.lf-portail-hero h1 span { display: block; }
.lf-portail-hero h1 span:nth-child(2) { color: transparent; -webkit-text-stroke: 1.5px #858585; }
.lf-portail-hero__copy > p:not(.lf-portail-eyebrow) { max-width: 44rem; margin: 2rem 0; color: var(--portal-muted); font-size: clamp(1rem, 1.4vw, 1.2rem); }
.lf-portail-button { position: relative; display: inline-flex; overflow: hidden; align-items: center; justify-content: center; min-height: 3.25rem; padding: .8rem 1.35rem; text-decoration: none; }
.lf-portail-button.has-effect-shine::after { position: absolute; top: -30%; left: -45%; width: var(--lf-effect-shine-width, 24%); height: 160%; background: var(--lf-effect-shine-color, #fff); content: ""; opacity: var(--lf-effect-shine-opacity, .42); transform: skewX(var(--lf-effect-shine-angle, -24deg)); }
.lf-portail-button.has-effect-shine:hover::after, .lf-portail-button.has-effect-shine:focus-visible::after { animation: lf-v8-effect-shine var(--lf-effect-shine-duration, 800ms) ease forwards; }
.lf-portail-solar { --solar-width: min(69vw, 61rem); --solar-center-x: 40%; position: relative; z-index: 1; width: var(--solar-width); aspect-ratio: 1.45; margin-left: clamp(-20rem, -18vw, -10rem); justify-self: center; isolation: isolate; }
.lf-portail-solar__plane { position: absolute; top: 50%; left: var(--solar-center-x); width: 100%; aspect-ratio: 1; transform: translate(-50%, -50%) perspective(62rem) rotateX(61deg); transform-origin: 50% 50%; }
.lf-portail-solar__plane img { display: block; width: 100%; height: 100%; opacity: .72; }
.lf-portail-solar__sun { position: absolute; z-index: 1000; top: 50%; left: var(--solar-center-x); width: clamp(7.2rem, 11vw, 9.6rem); aspect-ratio: 1; overflow: visible; transform: translate(-50%, -50%); filter: drop-shadow(0 0 1.2rem rgb(0 0 0 / 18%)); }
.lf-portail-solar__sun img { position: absolute; top: 50%; left: 50%; display: block; max-width: none; height: auto; transform: translate(-50%, -50%); }
.lf-portail-solar__black-hole { z-index: 1; width: 100%; height: 100% !important; object-fit: contain; }
.lf-portail-solar__stars { z-index: 2; width: 34%; animation: portal-stars 3.8s ease-in-out infinite alternate; }
.lf-portail-solar__wordmark { z-index: 3; width: 42%; filter: drop-shadow(0 .08rem .12rem rgb(0 0 0 / 45%)); }
.lf-portail-planet { --planet-gradient: linear-gradient(145deg, #fff, #c8c8c8); --planet-size: clamp(2rem, 4.3vw, 3.4rem); position: absolute; z-index: 10; top: 50%; left: var(--solar-center-x); width: var(--planet-size); aspect-ratio: 1; color: #333; text-decoration: none; transform: translate(-50%, -50%); will-change: transform; }
.lf-portail-planet.is-ia { --planet-gradient: var(--portal-gradient-ia); --planet-size: clamp(4rem, 7vw, 6rem); }
.lf-portail-planet.is-logo { --planet-gradient: var(--portal-gradient-logo); --planet-size: clamp(1.8rem, 3.2vw, 2.7rem); }
.lf-portail-planet.is-web { --planet-gradient: var(--portal-gradient-web); --planet-size: clamp(2.8rem, 4.8vw, 4rem); }
.lf-portail-planet.is-3d { --planet-gradient: var(--portal-gradient-3d); --planet-size: clamp(3.6rem, 6vw, 5rem); }
.lf-portail-planet.is-illustration { --planet-gradient: var(--portal-gradient-illustration); --planet-size: clamp(3rem, 5vw, 4.2rem); }
.lf-portail-planet.is-bd { --planet-gradient: var(--portal-gradient-bd); --planet-size: clamp(2.2rem, 3.8vw, 3.2rem); }
.lf-portail-planet__sphere { position: relative; display: grid; width: 100%; height: 100%; overflow: hidden; border: 1px solid #c4c4c4; border-radius: 50%; background: #dedede; filter: grayscale(1); place-items: center; box-shadow: var(--lf-shadow-library-shadow_02); transition: filter .5s ease, background .5s ease, border-color .4s ease, box-shadow .45s ease, transform .45s cubic-bezier(.2, .9, .2, 1.2); }
.lf-portail-planet__sphere::after { position: absolute; inset: 8%; border-radius: 50%; background: linear-gradient(145deg, rgb(255 255 255 / 13%), transparent 52%); content: ""; }
.lf-portail-planet__sphere > span { position: relative; z-index: 2; max-width: 88%; overflow: hidden; color: #333; font-size: clamp(.62rem, 1.38vw, 1.04rem); font-weight: 900; letter-spacing: -.04em; line-height: .82; text-align: center; text-overflow: clip; transition: color .4s ease, transform .45s ease; }
.lf-portail-planet.is-logo .lf-portail-planet__sphere > span { font-size: clamp(.46rem, .86vw, .72rem); }
.lf-portail-planet.is-bd .lf-portail-planet__sphere > span { max-width: 3ch; line-height: .68; }
.lf-portail-planet__label { position: absolute; z-index: 40; bottom: calc(100% + .9rem); left: 50%; display: grid; width: clamp(13rem, 20vw, 17rem); gap: .35rem; padding: .85rem 1rem; border: 1px solid #d4d4d4; border-radius: .25rem; background: rgb(251 251 251 / 94%); color: #2b2b2b; opacity: 0; pointer-events: none; transform: translate(-50%, .75rem) scale(.94); transition: opacity .3s ease, transform .35s ease; box-shadow: var(--lf-shadow-library-shadow_05); }
.lf-portail-planet__label::after { position: absolute; top: 100%; left: 50%; width: .8rem; aspect-ratio: 1; border-right: 1px solid #d4d4d4; border-bottom: 1px solid #d4d4d4; background: inherit; content: ""; transform: translate(-50%, -50%) rotate(45deg); }
.lf-portail-planet__label strong { font-size: .84rem; }
.lf-portail-planet__label span { color: #686868; font-size: .72rem; line-height: 1.45; }
.lf-portail-planet:hover, .lf-portail-planet:focus-visible { z-index: 50; outline: none; }
.lf-portail-planet:hover .lf-portail-planet__sphere,
.lf-portail-planet:focus-visible .lf-portail-planet__sphere { border-color: rgb(0 0 0 / 8%); background: var(--planet-gradient); filter: none; box-shadow: var(--lf-shadow-library-shadow_03); transform: scale(1.12); }
.lf-portail-planet:hover .lf-portail-planet__sphere > span,
.lf-portail-planet:focus-visible .lf-portail-planet__sphere > span { color: #fff; transform: scale(1.08); }
.lf-portail-planet:hover .lf-portail-planet__label,
.lf-portail-planet:focus-visible .lf-portail-planet__label { opacity: 1; transform: translate(-50%, 0) scale(1); }
.lf-portail-universes { padding-block: clamp(5rem, 10vw, 9rem); background: #ececec; }
.lf-portail-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .65fr); gap: 1rem 5rem; margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.lf-portail-section-head .lf-portail-eyebrow { grid-column: 1 / -1; letter-spacing: -.05em; }
.lf-portail-section-head h2, .lf-portail-connection h2, .lf-portail-cta h2, .lf-portail-secondary h2 { margin: 0; color: var(--portal-ink); font-size: clamp(2.2rem, 5vw, 5rem); font-weight: 900; letter-spacing: -.06em; line-height: .92; }
.lf-portail-hero h1, .lf-portail-section-head h2, .lf-portail-connection h2, .lf-portail-cta h2, .lf-portail-secondary h2 { text-transform: uppercase; }
.lf-portail-section-head > p:last-child { margin: 0; color: var(--portal-muted); font-size: 1.05rem; }
.lf-portail-universe-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 2rem); }
.lf-portail-universe { --portal-gradient: linear-gradient(135deg, #555, #222); display: grid; overflow: hidden; min-height: 29rem; border: 1px solid #c9c9c9; border-radius: var(--lf-card-radius, .625rem); background: rgb(255 255 255 / 52%); color: var(--portal-ink); grid-template-rows: 1.12fr .88fr; text-decoration: none; transition: transform .25s ease, box-shadow .4s ease, border-color .4s ease, background .5s ease; }
.lf-portail-universe.is-ia { --portal-gradient: var(--portal-gradient-ia); }
.lf-portail-universe.is-logo { --portal-gradient: var(--portal-gradient-logo); }
.lf-portail-universe.is-web { --portal-gradient: var(--portal-gradient-web); }
.lf-portail-universe.is-3d { --portal-gradient: var(--portal-gradient-3d); }
.lf-portail-universe.is-illustration { --portal-gradient: var(--portal-gradient-illustration); }
.lf-portail-universe.is-bd { --portal-gradient: var(--portal-gradient-bd); }
.lf-portail-universe:hover, .lf-portail-universe:focus-visible { border-color: transparent; background: var(--portal-gradient); box-shadow: var(--lf-shadow-library-shadow_04); color: #fff; outline: none; transform: translateY(-.6rem); }
.lf-portail-universe__visual { position: relative; display: grid; overflow: hidden; min-height: 17rem; background: #373737; place-items: center; }
.lf-portail-universe__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(.86) brightness(.62); transform: scale(1.02); transition: filter .7s ease, transform 1s ease; }
.lf-portail-universe__gradient { position: absolute; inset: 0; z-index: 1; background: var(--portal-gradient); opacity: 0; mix-blend-mode: color; transition: opacity .65s ease, mix-blend-mode .65s ease; }
.lf-portail-universe:hover .lf-portail-universe__image, .lf-portail-universe:focus-visible .lf-portail-universe__image { filter: none; transform: scale(1.08); }
.lf-portail-universe:hover .lf-portail-universe__gradient, .lf-portail-universe:focus-visible .lf-portail-universe__gradient { opacity: .72; mix-blend-mode: multiply; }
.lf-portail-universe__grid { position: absolute; z-index: 2; inset: 0; opacity: .2; background: linear-gradient(90deg, transparent 49.5%, #fff 50%, transparent 50.5%), linear-gradient(0deg, transparent 49.5%, #fff 50%, transparent 50.5%); background-size: 3rem 3rem; transform: perspective(25rem) rotateX(58deg) scale(1.6); transition: transform 1s ease, opacity .5s ease; }
.lf-portail-universe:hover .lf-portail-universe__grid { opacity: .45; transform: perspective(25rem) rotateX(42deg) scale(1.85) translateY(-1rem); }
.lf-portail-universe__word { position: relative; z-index: 3; color: #f7f7f7; font-size: clamp(4.4rem, 10vw, 9rem); font-weight: 900; letter-spacing: -.09em; line-height: .65; text-align: center; text-shadow: 0 .2rem .5rem rgb(0 0 0 / 38%); transform: scale(1.12); transition: opacity .8s ease, letter-spacing .8s ease, transform .8s ease; }
.lf-portail-universe:hover .lf-portail-universe__word, .lf-portail-universe:focus-visible .lf-portail-universe__word { opacity: .24; letter-spacing: .06em; transform: scale(1.42) rotate(-5deg); }
.lf-portail-universe:nth-child(even):hover .lf-portail-universe__word,
.lf-portail-universe:nth-child(even):focus-visible .lf-portail-universe__word { transform: scale(1.42) rotate(5deg); }
.lf-portail-universe__signal { position: absolute; z-index: 4; right: 1rem; bottom: .7rem; color: rgb(255 255 255 / 75%); font-size: .72rem; font-weight: 800; letter-spacing: .15em; }
.lf-portail-universe__content { display: grid; align-content: start; gap: .7rem; padding: 1.5rem; }
.lf-portail-universe__content strong { font-size: 1.25rem; }
.lf-portail-universe__content > span { color: var(--portal-muted); font-size: .93rem; transition: color .4s ease; }
.lf-portail-universe__content em { margin-top: auto; color: #444; font-size: .78rem; font-style: normal; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transition: color .4s ease, transform .4s ease; }
.lf-portail-universe:hover .lf-portail-universe__content > span, .lf-portail-universe:focus-visible .lf-portail-universe__content > span { color: rgb(255 255 255 / 87%); }
.lf-portail-universe:hover .lf-portail-universe__content em, .lf-portail-universe:focus-visible .lf-portail-universe__content em { color: #fff; transform: translateX(.4rem); }
.lf-portail-universe.is-illustration:hover, .lf-portail-universe.is-illustration:focus-visible { color: #1e2b24; }
.lf-portail-universe.is-illustration:hover .lf-portail-universe__content > span, .lf-portail-universe.is-illustration:hover .lf-portail-universe__content em { color: #1e2b24; }
.lf-portail-connection { position: relative; padding-block: clamp(6rem, 12vw, 11rem); background: linear-gradient(180deg, #050505 0%, #202020 28%, #303030 72%); color: #fff; }
.lf-portail-connection__layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); align-items: end; gap: clamp(3rem, 8vw, 8rem); }
.lf-portail-connection h2 { color: #fff; }
.lf-portail-connection__copy { color: #c9c9c9; font-size: clamp(1.05rem, 1.7vw, 1.3rem); }
.lf-portail-connection__copy p { margin: 0 0 .85em; }
.lf-portail-connection__copy p:last-child { margin-bottom: .4rem; }
.lf-portail-connection__copy blockquote { margin: 1.15em 0; padding-left: 1em; border-left: 2px solid rgba(255, 255, 255, .45); color: #fff; font-size: 1.08em; font-weight: 750; line-height: 1.35; }
.lf-portail-spectrum { position: absolute; right: 0; bottom: 0; left: 0; height: clamp(1.2rem, 2vw, 2rem); overflow: hidden; background: var(--lf-decoration-library-decoration_01-fill, var(--portal-spectrum)); filter: grayscale(1); opacity: var(--lf-decoration-library-decoration_01-opacity, 1); transition: filter .7s ease, height .5s ease; }
.lf-portail-connection:hover .lf-portail-spectrum { height: clamp(2.5rem, 5vw, 5rem); filter: none; }
.lf-portail-spectrum span { position: absolute; inset: -100% -30%; background: linear-gradient(115deg, transparent 42%, rgb(255 255 255 / 60%) 50%, transparent 58%); animation: portal-spectrum-shine 6s linear infinite; }
.lf-portail-cta { padding-block: clamp(5rem, 9vw, 8rem); background: var(--portal-paper); }
.lf-portail-cta__layout { display: flex; align-items: end; justify-content: space-between; gap: 3rem; }
.lf-portail-cta h2 { max-width: 13ch; }
.lf-portail-secondary { border-top: 1px solid var(--portal-line); padding-block: 2.5rem; background: #e9e9e9; }
.lf-portail-secondary__layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: end; gap: 2rem; }
.lf-portail-secondary h2 { font-size: clamp(1.7rem, 3vw, 3rem); }
.lf-portail-secondary nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.lf-portail-secondary nav a { padding: .4rem .6rem; border: 1px solid #c4c4c4; border-radius: 999px; color: #555; font-size: .68rem; font-weight: 800; line-height: 1.15; text-decoration: none; text-transform: uppercase; transition: background .3s ease, color .3s ease, border-color .3s ease; }
.lf-portail-secondary nav a:hover { border-color: #333; background: #333; color: #fff; }
.lf-portail-secondary nav .is-adult span { color: #9b59b6; }
.lf-portail-contact {
	width: min(92vw, 48rem);
	max-width: none;
	max-height: min(90vh, 54rem);
	margin: auto;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	border: 1px solid var(--lf-form-border, #ccc);
	border-radius: var(--lf-radius-use-card, 1rem);
	background: var(--lf-color-surface, #fff);
	color: var(--lf-color-text, #222);
	box-shadow: var(--lf-shadow-use-modal, 0 2rem 6rem rgb(0 0 0 / 40%));
	overflow: auto;
	overscroll-behavior: contain;
}

.lf-portail-contact::backdrop {
	background: rgb(17 17 17 / 80%);
	backdrop-filter: blur(var(--lf-surface-use-header-normal-blur, 6px));
}

.lf-portail-contact__close {
	float: right;
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid var(--lf-form-border, #ccc);
	border-radius: var(--lf-radius-use-pill, 999px);
	background: var(--lf-form-surface, #fff);
	color: var(--lf-form-text, #222);
	cursor: pointer;
	font-size: 1.5rem;
	line-height: 1;
	place-items: center;
}

.lf-portail-contact__close:is(:hover, :focus-visible) {
	border-color: var(--lf-form-focus, #222);
	outline-color: var(--lf-form-focus, #222);
}

.lf-portail-contact h2 {
	margin: .25rem 3rem 1rem 0;
	color: var(--lf-color-heading, var(--lf-color-text, #222));
	font-family: var(--lf-type-heading-family, inherit);
	font-size: clamp(1.8rem, 4vw, 3rem);
	font-weight: 900;
}

.lf-portail-contact > p {
	color: var(--lf-color-muted, #555);
}

.lf-portail-contact :is(input:not([type="submit"]), select, textarea) {
	border-color: var(--lf-form-border, #ccc) !important;
	border-radius: var(--lf-form-radius, .35rem) !important;
	background: var(--lf-form-surface, #fff) !important;
	color: var(--lf-form-text, #222) !important;
	box-shadow: var(--lf-form-shadow, none);
}

.lf-portail-contact :is(input:not([type="submit"]), textarea)::placeholder {
	color: var(--lf-form-placeholder, #777);
}

.lf-portail-contact :is(input:not([type="submit"]), select, textarea):focus {
	border-color: var(--lf-form-focus, #222) !important;
	outline-color: var(--lf-form-focus, #222);
}

.lf-portail-cta button.lf-portail-button {
	cursor: pointer;
}

@media (max-width: 48rem) {
	.lf-portail-contact {
		width: calc(100vw - 1rem);
		max-height: calc(100dvh - 1rem);
		padding: 1.25rem;
	}
}
.lf-c-footer { border-top-color: #c7c7c7; background: #252525; color: #aaa; }
.lf-c-footer .lf-portail-brand { width: 12rem; height: 8rem; }
.lf-c-footer .lf-portail-brand__logo.is-neutral,
.lf-c-footer .lf-portail-brand__logo.is-color { opacity: 0; }
.lf-c-footer .lf-portail-brand__logo.is-footer { opacity: 1; filter: brightness(0) invert(1); transform: none; }
.lf-c-footer .lf-portail-brand__logo.is-color,
.lf-c-footer .lf-c-branding:hover .lf-portail-brand__logo.is-color,
.lf-c-footer .lf-c-branding:focus-within .lf-portail-brand__logo.is-color { opacity: 0; }
.lf-c-footer .lf-c-branding:hover .lf-portail-brand__logo.is-neutral,
.lf-c-footer .lf-c-branding:focus-within .lf-portail-brand__logo.is-neutral { opacity: 0; }
.lf-c-footer .lf-c-branding:hover .lf-portail-brand__logo.is-footer,
.lf-c-footer .lf-c-branding:focus-within .lf-portail-brand__logo.is-footer { opacity: 1; filter: brightness(0) invert(1); transform: none; }
.lf-c-footer a { color: #d5d5d5; }
.lf-c-footer a:hover, .lf-c-footer a:focus-visible { color: #fff; }
.lf-c-footer .lf-c-footer__socials a { border-color: #666; background: #171717; color: #fff; }
.lf-c-footer .lf-c-footer__socials a { position: relative; overflow: hidden; }
.lf-c-footer .lf-c-footer__socials a::after { position: absolute; top: -30%; left: -60%; width: var(--lf-effect-shine-width, 24%); height: 160%; background: var(--lf-effect-shine-color, #fff); content: ""; opacity: var(--lf-effect-shine-opacity, .42); pointer-events: none; transform: skewX(var(--lf-effect-shine-angle, -24deg)); }
.lf-c-footer .lf-c-footer__socials a:hover { border-color: transparent; background: var(--lf-gradient-library-multi_primary, var(--portal-spectrum)); color: #fff; }
.lf-c-footer .lf-c-footer__socials a:hover::after, .lf-c-footer .lf-c-footer__socials a:focus-visible::after { animation: lf-v8-effect-shine var(--lf-effect-shine-duration, 800ms) ease forwards; }
.lf-c-footer .lf-c-footer__social-icon { display: block; background: currentColor; }

@media (prefers-reduced-motion: reduce) { .lf-c-footer .lf-c-footer__socials a::after { display: none; } }
[data-portail-reveal] { opacity: 0; transform: translateY(2rem); transition: opacity .8s ease, transform .9s cubic-bezier(.2, .8, .2, 1); transition-delay: var(--portal-delay, 0ms); }
[data-portail-reveal="left"] { transform: translateX(-3rem); }
[data-portail-reveal="right"] { transform: translateX(3rem); }
[data-portail-reveal].is-visible { opacity: 1; transform: none; }

@keyframes portal-shine { to { left: 125%; } }
@keyframes portal-spin { to { transform: rotate(360deg); } }
@keyframes portal-spectrum-shine { to { transform: translateX(45%); } }
@keyframes portal-stars { from { opacity: .55; transform: translate(-50%, -50%) scale(.88); } to { opacity: 1; transform: translate(-50%, -50%) scale(1.05); } }

@media (min-width: 100rem) {
  .lf-portail-solar { --solar-center-x: 50%; margin-left: -5rem; }
}

@media (max-width: 64rem) {
  .lf-portail-hero__layout { grid-template-columns: 1fr; }
  .lf-portail-solar { --solar-width: min(108vw, 54rem); --solar-center-x: 50%; margin-top: 2rem; margin-left: 0; }
  .lf-portail-universe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 48rem) {
  html { scroll-padding-top: 6rem; }
  .lf-c-header__inner { min-height: 7.5rem; }
  .lf-portail-brand { width: 10rem; height: 6.67rem; }
  .lf-c-header.is-scrolled .lf-portail-brand { width: 8rem; height: 5.33rem; }
  .lf-c-navigation { background: var(--lf-navigation-responsive-surface, rgb(246 246 246 / 98%)); }
  .lf-portail-hero { min-height: auto; }
  .lf-portail-hero__layout { padding: 4.5rem 1rem; }
  .lf-portail-hero h1 { font-size: clamp(2.75rem, 13vw, 5.4rem); }
  .lf-portail-solar { --solar-width: calc(100vw + 3rem); aspect-ratio: 1.18; margin-top: 1rem; margin-left: -1.5rem; }
  .lf-portail-solar__sun { width: 4.4rem; }
  .lf-portail-planet__label { width: 11rem; }
  .lf-portail-section-head, .lf-portail-connection__layout, .lf-portail-secondary__layout { grid-template-columns: 1fr; }
  .lf-portail-universe-grid { grid-template-columns: 1fr; }
  .lf-portail-universe { min-height: 23rem; }
  .lf-portail-universe__visual { min-height: 13rem; }
  .lf-portail-universe__word { font-size: clamp(5rem, 24vw, 8rem); }
  .lf-portail-cta__layout { align-items: flex-start; flex-direction: column; }
  .lf-portail-secondary nav { justify-content: flex-start; }
}
@media (hover: none) {
  .lf-portail-universe { border-color: transparent; background: var(--portal-gradient); color: #fff; }
  .lf-portail-universe__visual { background: rgb(0 0 0 / 8%); filter: none; }
  .lf-portail-universe__content > span, .lf-portail-universe__content em { color: rgb(255 255 255 / 88%); }
  .lf-portail-universe.is-illustration { color: #1e2b24; }
  .lf-portail-universe.is-illustration .lf-portail-universe__content > span, .lf-portail-universe.is-illustration .lf-portail-universe__content em { color: #1e2b24; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  [data-portail-reveal] { opacity: 1; transform: none; }
}
