html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: clip; }

html { background: #0D1D62; overflow-x: clip; }
body { margin: 0; min-height: 100vh; opacity: 0; transition: opacity .5s linear; }
html.m-ready body { opacity: 1; }
@media (scripting: none) { body { opacity: 1; } }

.m-l { will-change: transform; }
.m-l-mask { padding-bottom: .1em; margin-bottom: -.1em; padding-top: .04em; margin-top: -.04em; }
.m-c { will-change: transform; }

.m-gl { position: relative; overflow: hidden; }
.m-gl > canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: 0; }
.m-gl > :not(canvas) { position: relative; z-index: 1; }

.m-mq { overflow: hidden; }
.m-mq-track { display: flex; width: max-content; align-items: center; will-change: transform; }
.m-mq-group { display: flex; align-items: center; flex-shrink: 0; }

.m-btn { cursor: pointer; will-change: transform; user-select: none; transition: filter .2s linear; }
.m-btn:hover { filter: brightness(1.06); }
.m-link { cursor: pointer; transition: color .18s linear; }
.m-link:hover { color: #FAE250 !important; }
.m-link-dark:hover { color: #2C4ED8 !important; }

.m-spot { position: relative; overflow: hidden; }
.m-spot::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .35s linear; background: radial-gradient(var(--spot-size, 320px) circle at var(--mx, 50%) var(--my, 50%), var(--spot, rgba(147,162,234,.2)), transparent 70%); z-index: 3; }
.m-spot:hover::after { opacity: 1; }

.m-q { cursor: pointer; }
.m-a { overflow: hidden; }
.m-toggle { flex-shrink: 0; }
.m-toggle .v { transform-box: fill-box; }

.m-nav { position: fixed !important; top: 0; left: 0; width: 1440px !important; z-index: 90; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-sizing: border-box; }

.m-stage { position: sticky; top: 0; height: var(--vh, 100vh); overflow: hidden; }
.m-canvas-wrap { position: absolute; inset: 0; }
.m-canvas-wrap canvas { width: 100%; height: 100%; display: block; }
.m-grab { cursor: grab; touch-action: pan-y; }
.m-grab:active { cursor: grabbing; }

.m-hint { position: absolute; pointer-events: none; z-index: 6; font-family: Manrope, sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .08em; color: #0D1D62; background: #FAE250; padding: 8px 14px; border-radius: 100px; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body { transition: none; }
}

/* service panels */
.m-panels > * { flex: 1 1 0 !important; width: auto !important; min-width: 0; cursor: pointer; background-color: transparent !important; border: 1px solid #2A44B4 !important; border-radius: 18px; overflow: hidden; position: relative; transition: flex-grow .75s cubic-bezier(.22,1,.36,1), background-color .35s linear, border-color .35s linear; }
.m-panels > :first-child { flex-basis: 50px !important; }
.m-panels > .is-open { flex-grow: 2.3 !important; background-color: #1A34A9 !important; border-color: #1A34A9 !important; }
.m-panels [data-pencil-name="Title"] { white-space: normal !important; width: 100%; font-size: 29px !important; line-height: 31px !important; }
.m-panels .m-photo { flex-shrink: 0; height: 0 !important; width: 100%; background-size: cover; background-position: center; transition: height .75s cubic-bezier(.22,1,.36,1), margin .75s cubic-bezier(.22,1,.36,1); }
.m-panels .m-photo-bleed { margin: -24px -24px 16px -24px; width: calc(100% + 48px); }
.m-panels .is-open > .m-photo { height: 236px !important; }
.m-panels [data-pencil-name="Expand"] { transition: opacity .25s linear; }
.m-panels .is-open [data-pencil-name="Expand"] { opacity: 0; height: 0 !important; }
.m-panels [data-pencil-name="Content"] { padding: 24px !important; gap: 14px !important; justify-content: space-between; }
.m-panels > :not(.is-open) [data-pencil-name="Flag photo"] { opacity: 0; }
.m-panels [data-pencil-name="Flag photo"] { transition: opacity .25s linear; z-index: 4; position: absolute !important; }

/* logo and badge tiles */
.m-tile { transition: border-color .3s linear, box-shadow .4s ease; }
.m-tile [data-pencil-name="Image"] { transition: transform .7s cubic-bezier(.22,1,.36,1); }
.m-tile:hover { border-color: #2C4ED8 !important; box-shadow: 0 14px 34px -18px rgba(13,29,98,.45); }
.m-tile:hover [data-pencil-name="Image"] { transform: scale(1.08); }

.m-chip { cursor: pointer; }
.m-custom-stage { background: #DEE5F9; }
.m-custom-stage .m-canvas-wrap { z-index: 2; }
.m-custom-stage [data-pencil-name="Header"], .m-custom-stage [data-pencil-name="Spec row"] { z-index: 3; pointer-events: none; }
.m-custom-stage [data-pencil-name="Giant"] { z-index: 1; }

.m-step-bar { position: absolute; top: -3px; left: 0; width: 100%; height: 3px; background: #2C4ED8; transform-origin: left; }
.m-rail-fill { position: absolute; left: 55px; width: 2px; background: #3B5DE2; transform-origin: top; }
.m-bg { position: absolute; inset: -6% 0; background-size: cover; background-position: center; will-change: transform; z-index: 0; }
.m-shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; }

/* if scripts are slow or fail, show the page anyway after 3 s */
@keyframes m-failsafe { to { opacity: 1; } }
body { animation: m-failsafe 0s linear 3s forwards; }
