/* Reference-led contact sections. */
.contact-page .site-header { background: #080e1be6; }
.contact-page .site-header .brand img { mix-blend-mode: screen; }
.contact-page .site-header.scrolled { background: #080e1bf2; box-shadow: 0 8px 35px #0003; }
.contact-page .site-header .site-nav > a:not(.button),
.contact-page .site-header .nav-services-trigger { color: #fff; }
.contact-page .site-header .button { background: #fff; color: #080e1b; box-shadow: -4px 2px 22px #a138e53b, 4px 2px 20px #397ce529; }
.contact-page .site-header .button span { background: #080e1b; color: #fff; }
.contact-page .site-header .menu-toggle { background: #182035; border-color: #ffffff30; }
.contact-page .site-header .menu-toggle span { background: #fff; }
.connect-hero { min-height: 934px; padding: 122px 0 96px; background: radial-gradient(ellipse at 65% 65%,#17142b55,transparent 55%),#080e1b; }
.connect-layout { position: relative; display: grid; grid-template-columns: .76fr 1fr; gap: 64px; align-items: center; width: min(calc(100% - 80px),1260px); }
.connect-copy { position: relative; min-width: 0; }
.connect-kicker { display: flex; align-items: center; gap: 16px; color: #b06aff; font: 700 14px var(--heading); letter-spacing: .1em; text-transform: uppercase; }
.connect-kicker::before { content: ''; height: 2px; width: 32px; background: #b06aff; }
.connect-hero h1 { margin: 25px 0 32px; font-size: clamp(52px,5.15vw,86px); line-height: 1.03; letter-spacing: -.065em; font-weight: 800; }
.connect-hero h1 em { width: max-content; max-width: 100%; background-image: linear-gradient(105deg,#f04bcf 6%,#d950f4 40%,#7366f6 70%,#248af5); padding-bottom: .1em; }
.connect-copy > p { max-width: 520px; margin-bottom: 30px; color: #abbad3; font-size: 18px; line-height: 1.55; }
.connect-benefits { display: grid; gap: 17px; list-style: none; padding: 0; margin: 0; }
.connect-benefits li { display: flex; align-items: center; gap: 23px; }
.connect-benefit-icon { flex: 0 0 56px; height: 56px; display: grid; place-items: center; color: #b66aff; border: 1px solid #a349f74f; border-radius: 50%; background: radial-gradient(at 75% 85%,#59228e77,#22173b); box-shadow: inset 0 0 18px #7e3df018,0 0 22px #6326c518; transition: transform .4s,box-shadow .4s; }
.connect-benefit-icon svg { width: 28px; height: 28px; }
.connect-benefits li:last-child .connect-benefit-icon { border-color: #af43e8; color: #c560ee; }
.connect-benefits strong { display: block; color: #f7f8ff; font-size: 16px; line-height: 1.5; }
.connect-benefits li div > span { color: #abbad3; font-size: 16px; }
.connect-form-shell { min-width: 0; perspective: 1600px; }
.connect-form { position: relative; padding: 38px 36px; border: 1px solid #9965c88c; border-radius: 27px; background: linear-gradient(130deg,#1a2030ee,#111827f5 65%,#14192cf2); box-shadow: inset 0 0 20px #b281f015,0 16px 65px #6a2de719; backdrop-filter: blur(22px); transform: rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition: transform .4s ease-out,box-shadow .4s; }
.connect-form::before { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(350px circle at var(--light-x,50%) var(--light-y,0%),#a96dfa12,transparent); }
.connect-form .form-head { align-items: center; gap: 18px; margin-bottom: 25px; }
.connect-form .form-head h2 { margin: 0; font-size: 25px; line-height: 1.25; letter-spacing: -.055em; }
.connect-form .form-head > span { font-size: 9px; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; color: #a7b5d0; }
.connect-form .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 18px; }
.connect-form .form-grid label { min-width: 0; gap: 7px; }
.connect-form .form-grid label > span { font-size: 13px; font-weight: 400; color: #fff; }
.connect-form label b { color: #f361bd; }
.connect-input { position: relative; display: block; }
.connect-input > svg { position: absolute; z-index: 1; left: 18px; top: 19px; width: 20px; height: 20px; color: #b6c3dd; pointer-events: none; }
.connect-form .form-grid input,.connect-form .form-grid select,.connect-form .form-grid textarea { display: block; min-width: 0; height: 59px; padding: 16px 16px 16px 47px; border: 1px solid #535d74; border-radius: 12px; color: #fff; background: linear-gradient(135deg,#242c3eee,#242b3ccc); font-size: 13px; font-weight: 400; }
.connect-form .form-grid input::placeholder,.connect-form .form-grid textarea::placeholder { color: #9cabc6; opacity: 1; }
.connect-form .form-grid select { appearance: none; padding-right: 38px; color: #b7c3dc; cursor: pointer; }
.connect-select::after { content: ''; position: absolute; right: 24px; top: 22px; width: 12px; height: 12px; border-right: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: rotate(45deg); pointer-events: none; }
.connect-form .form-grid textarea { height: 154px; min-height: 154px; padding-bottom: 33px; line-height: 1.6; }
.connect-counter { position: absolute; right: 13px; bottom: 9px; color: #a5b4d0; font-size: 11px; pointer-events: none; }
.connect-form .form-grid :is(input,select,textarea):focus { border-color: #c183ff; box-shadow: 0 0 0 3px #9860f51e,0 0 20px #9964ea14; }
.connect-form .form-grid .invalid { border-color: #fb7185; }
.connect-form .form-submit { gap: 25px; margin-top: 30px; flex-wrap: wrap; }
.connect-form .button { gap: 20px; min-height: 55px; padding: 7px 10px 7px 25px; font-size: 15px; color: #080e1b; box-shadow: -5px 0 25px #ac43f32e,6px 4px 20px #4754ff1f; }
.connect-form .button > span { width: 36px; height: 36px; background: #080e1b; font-size: 23px; font-weight: 400; }
.connect-form .button:hover { background: #eee5ff; }
.connect-form .button:hover > span { transform: translateX(2px); }
.connect-form .button:disabled { opacity: .65; cursor: wait; transform: none; }
.connect-privacy { display: flex; align-items: center; gap: 14px; }
.connect-privacy > svg { width: 21px; height: 24px; flex-shrink: 0; color: #b9c5df; }
.connect-privacy p { margin: 0; max-width: none; color: #a8b6d0; font-size: 11px; line-height: 1.8; }
.connect-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.connect-form a:focus-visible,.connect-form button:focus-visible { outline: 2px solid #c183ff; outline-offset: 5px; }
.connect-decor { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.connect-sphere { position: absolute; border-radius: 50%; background: radial-gradient(circle at 25% 10%,#2d9bff,transparent 42%),linear-gradient(145deg,#073dbe 10%,#6325d4 55%,#d513f0 85%,#571778); box-shadow: inset 6px 4px 14px #669aff44,inset -16px -13px 28px #20044166,0 20px 80px #5726d022; translate: var(--orb-x,0px) calc(var(--orb-y,0px) + var(--scroll-drift,0px)); animation: connect-float 9s ease-in-out infinite alternate; }
.connect-sphere-left { width: 365px; height: 365px; left: -247px; top: 113px; }
.connect-sphere-right { width: 324px; height: 324px; right: max(32px,calc((100vw - 1550px)/2)); top: 123px; animation-delay: -4s; }
.connect-orbit { position: absolute; border: 1px solid #9660ed50; width: 570px; height: 720px; border-radius: 50%; rotate: 24deg; }
.connect-orbit-left { left: -510px; top: 25px; }
.connect-orbit-right { right: -435px; top: -180px; border-color: #6383f645; }
.connect-note { position: absolute; color: #b9baff; font: italic 25px/1.02 'Segoe Print','Comic Sans MS',cursive; text-align: center; rotate: -18deg; }
.connect-note::after { content: ''; display: block; height: 1.5px; background: #b9baff; margin-top: 7px; }
.connect-note-left { left: 3.3%; bottom: 165px; }
.connect-note-right { right: 2.8%; top: 465px; }
.connect-spark { position: absolute; width: 46px; height: 46px; right: 6.7%; top: 642px; background: #b251f5; clip-path: polygon(50% 0,59% 39%,100% 50%,60% 59%,50% 100%,40% 60%,0 50%,40% 40%); animation: connect-float 5s ease-in-out infinite alternate; }
@keyframes connect-float { to { transform: translateY(-16px) rotate(5deg); } }
@keyframes connect-enter { from { opacity: 0; transform: translateY(25px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion:no-preference) {
  .connect-copy { animation: connect-enter .85s both; }
  .connect-form-shell { animation: connect-enter .95s .15s both; }
  .connect-benefits li { animation: connect-enter .7s .25s both; }
  .connect-benefits li:nth-child(2) { animation-delay: .35s; }
  .connect-benefits li:nth-child(3) { animation-delay: .45s; }
}
@media (hover:hover) and (pointer:fine) {
  .connect-benefits li:hover .connect-benefit-icon { transform: perspective(300px) rotateY(-18deg) rotateZ(-7deg) translateY(-3px); box-shadow: 0 8px 25px #9429f53a; }
  .connect-form:hover { box-shadow: inset 0 0 25px #b281f01c,0 20px 70px #7535df28; }
}
@media (min-width:1450px) { .connect-layout { left: 14px; } }
@media (max-width:1450px) { .connect-note,.connect-spark { display: none; }.connect-layout { gap: 40px; }.connect-form { padding: 32px 28px; }.connect-form .form-head { flex-wrap: wrap; gap: 8px; }.connect-form .form-submit { gap: 18px; }.connect-copy > p { font-size: 17px; } }
@media (max-width:1100px) { .connect-layout { gap: 30px; grid-template-columns: .82fr 1fr; width: calc(100% - 48px); }.connect-hero h1 { font-size: 54px; }.connect-form { padding: 27px 22px; }.connect-benefits li { gap: 15px; }.connect-benefits strong,.connect-benefits li div > span { font-size: 14px; }.connect-form .form-grid { gap: 18px 12px; }.connect-input > svg { left: 13px; }.connect-form .form-grid input,.connect-form .form-grid select,.connect-form .form-grid textarea { padding-left: 40px; } }
@media (max-width:900px) { .connect-hero { min-height: auto; padding: 130px 0 75px; }.connect-layout { grid-template-columns: 1fr; max-width: 700px; gap: 45px; }.connect-copy { text-align: left; }.connect-hero h1 { font-size: clamp(56px,9vw,78px); }.connect-copy > p { max-width: 570px; }.connect-form { padding: 32px; }.connect-form .form-head { flex-wrap: nowrap; }.connect-sphere-right { right: -160px; top: 300px; opacity: .7; }.connect-sphere-left { left: -300px; }.connect-form .form-submit { justify-content: space-between; } }
@media (max-width:820px) { .contact-page .site-header .site-nav { background: #111a2d; }.contact-page .site-nav .nav-services-trigger { color: #fff; } }
@media (max-width:580px) {
  .connect-layout { width: calc(100% - 36px); gap: 34px; }
  .connect-hero { padding: 114px 0 55px; }
  .connect-kicker { font-size: 11px; gap: 12px; }
  .connect-hero h1 { margin: 24px 0; font-size: clamp(42px,10.6vw,60px); }
  .connect-copy > p { font-size: 16px; }
  .connect-sphere-left { opacity: .4; }
  .connect-sphere-right { right: -225px; opacity: .3; }
  .connect-benefits { gap: 16px; }
  .connect-benefit-icon { flex-basis: 49px; height: 49px; }
  .connect-benefits strong { font-size: 15px; }
  .connect-benefits li div > span { font-size: 13px; }
  .connect-form { padding: 26px 19px; border-radius: 22px; }
  .connect-form .form-head { display: grid; gap: 10px; }
  .connect-form .form-head h2 { font-size: 23px; }
  .connect-form .form-grid { grid-template-columns: 1fr; }
  .connect-form .form-grid .full { grid-column: auto; }
  .connect-form .form-submit { display: grid; gap: 20px; }
  .connect-form .button { font-size: 14px; justify-content: space-between; }
  .connect-form .form-grid textarea { height: 160px; }
}
@media (prefers-reduced-motion:reduce) {
  .connect-hero *, .connect-hero *::before { animation: none !important; transition: none !important; }
  .connect-form,.connect-benefit-icon,.connect-sphere { transform: none !important; translate: none !important; }
}

/* The three things to bring to a first conversation. */
.begin-section { position: relative; isolation: isolate; overflow: hidden; padding: 88px 0 100px; color: #090e30; background: radial-gradient(ellipse at 50% 90%,#eef1ff80,transparent 65%),#fefeff; }
.begin-content { position: relative; z-index: 1; width: min(calc(100% - 64px),1240px); }
.begin-heading { text-align: center; margin: 0 auto 42px; }
.begin-kicker { display: inline-flex; align-items: center; gap: 19px; color: #8e60ff; font: 700 14px/1.5 var(--heading); letter-spacing: .21em; text-transform: uppercase; }
.begin-kicker::before,.begin-kicker::after { content: ''; width: 31px; height: 2px; background: linear-gradient(90deg,#df43fb,#6981ff); }
.begin-heading h2 { margin: 25px auto 15px; font-size: clamp(38px,4.1vw,66px); line-height: 1.1; letter-spacing: -.06em; font-weight: 800; }
.begin-heading h2 > span { color: transparent; background: linear-gradient(100deg,#ee42d8,#c64ff0 40%,#8d64ff 65%,#185bff); background-clip: text; -webkit-background-clip: text; }
.begin-heading > p { margin: 0; color: #56628a; font-size: 21px; line-height: 1.5; letter-spacing: -.025em; }
.begin-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.begin-card-slot { min-width: 0; perspective: 1000px; }
.begin-card { --card-accent: #cb12f2; --card-tint: #f9d5ff; --card-border: #f0c8ff; position: relative; height: 100%; padding: 34px 29px 29px; border: 1px solid #e9e2ff; border-radius: 25px; background: linear-gradient(130deg,#fffcffff,#f7f8fff0); box-shadow: 0 18px 45px #8875e611,inset 0 0 0 1px #f4efff; transform: rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); transition: transform .35s ease-out,box-shadow .35s,border-color .35s; }
.begin-card-blue { --card-accent: #6653ff; --card-tint: #dce2ff; --card-border: #cccfff; }
.begin-card::before { content: ''; position: absolute; inset: -1px -1px auto; height: 30px; border: 3px solid transparent; border-top-color: var(--card-accent); border-left-color: var(--card-accent); border-radius: 25px 25px 0 0; clip-path: polygon(0 0,26% 0,25% 15%,1% 15%,1% 100%,0 100%); opacity: .85; pointer-events: none; }
.begin-card::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(200px circle at var(--card-light-x,50%) var(--card-light-y,15%),var(--card-tint),transparent); opacity: .18; }
.begin-number { position: absolute; top: 39px; left: 34px; color: var(--card-accent); font: 700 17px var(--heading); }
.begin-arrow { position: absolute; top: 31px; right: 29px; display: grid; place-items: center; width: 48px; height: 48px; color: var(--card-accent); border: 1px solid var(--card-border); border-radius: 15px; background: linear-gradient(140deg,#fff8,var(--card-tint)); box-shadow: 0 4px 12px #9672ff0b; transition: transform .3s,box-shadow .3s; z-index: 2; }
.begin-arrow svg { width: 25px; height: 25px; }
.begin-arrow:focus-visible { outline: 3px solid var(--card-accent); outline-offset: 4px; }
.begin-icon { position: relative; z-index: 1; display: grid; place-items: center; width: 92px; height: 92px; margin: 2px auto 26px; color: var(--card-accent); border: 1px solid var(--card-border); border-radius: 50%; background: radial-gradient(circle at 65% 20%,var(--card-tint),#ffffff10); box-shadow: 0 8px 28px #ab60e511,inset 0 0 18px #fff6; transition: transform .4s; }
.begin-icon svg { width: 53px; height: 53px; filter: drop-shadow(0 4px 3px #933cef22); }
.begin-card h3 { position: relative; z-index: 1; margin: 0 0 10px; font-size: 27px; line-height: 1.2; letter-spacing: -.055em; }
.begin-card p { position: relative; z-index: 1; margin: 0; color: #57638f; font-size: 18px; line-height: 1.5; letter-spacing: -.02em; }
.begin-decor { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.begin-orb { position: absolute; border-radius: 50%; background: radial-gradient(circle at 80% 15%,#ffc6fa 2%,#deb5ff 38%,#9ca3ff 67%,#53b1f9); box-shadow: inset -5px 5px 18px #fff8; translate: var(--begin-x,0px) var(--begin-y,0px); animation: begin-drift 10s ease-in-out infinite alternate; }
.begin-orb-top { width: 360px; height: 360px; left: -172px; top: -185px; }
.begin-orb-bottom { width: 420px; height: 420px; left: -205px; bottom: -145px; opacity: .6; background: radial-gradient(circle at 85% 25%,#f8b3fa,#c2adff 55%,#dbeaff); animation-delay: -4s; }
.begin-orb-right { width: 340px; height: 340px; right: -210px; top: 245px; background: linear-gradient(145deg,#b7f6fc,#d1c4ff 50%,#f7ccfa 85%); opacity: .65; animation-delay: -2s; }
.begin-orb-small { width: 182px; height: 182px; right: 38px; bottom: -35px; opacity: .55; background: linear-gradient(45deg,#f9dbfb,#d5b9fc); animation-delay: -6s; }
.begin-orbit { position: absolute; width: 570px; height: 610px; border: 1px solid #c2a9ff8c; border-radius: 48%; }
.begin-orbit-left { left: -365px; top: 185px; rotate: -35deg; }
.begin-orbit-right { right: -440px; top: -140px; rotate: 28deg; }
.begin-orbit i { position: absolute; top: 90px; right: 65px; width: 13px; height: 13px; border-radius: 50%; background: #9861ff; }
.begin-orbit-right i { top: 410px; left: 15px; }
.begin-note { position: absolute; color: #a18aff; text-align: center; font: italic 25px/1.08 'Segoe Print','Comic Sans MS',cursive; rotate: -19deg; }
.begin-note::after { content: ''; display: block; height: 1.5px; margin-top: 8px; background: #a18aff; }
.begin-note-left { left: 6%; top: 172px; }
.begin-note-right { right: 8%; top: 137px; }
@keyframes begin-drift { to { transform: translateY(18px) rotate(8deg); } }
@media (hover:hover) and (pointer:fine) {
  .begin-card:hover { transform: translateY(-7px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg)); box-shadow: 0 24px 45px #8875e624; border-color: var(--card-border); }
  .begin-card:hover .begin-icon { transform: translateY(-3px) rotate(-7deg); }
  .begin-arrow:hover { transform: translate(2px,-3px); box-shadow: 0 8px 20px #a779ed30; }
}
@media (max-width:1500px) { .begin-note { display: none; }.begin-orb-bottom { left: -300px; }.begin-orb-small { right: -60px; } }
@media (max-width:1050px) { .begin-section { padding: 75px 0; }.begin-content { width: calc(100% - 48px); }.begin-cards { gap: 15px; }.begin-card { padding: 29px 20px 25px; }.begin-number { left: 23px; top: 32px; font-size: 15px; }.begin-arrow { top: 23px; right: 19px; width: 37px; height: 37px; border-radius: 12px; }.begin-arrow svg { width: 21px; }.begin-icon { width: 78px; height: 78px; margin-top: 20px; }.begin-card h3 { font-size: 24px; }.begin-card p { font-size: 16px; }.begin-heading > p { font-size: 19px; } }
@media (max-width:760px) { .begin-cards { grid-template-columns: 1fr; max-width: 540px; margin-inline: auto; gap: 20px; }.begin-heading h2 { font-size: clamp(34px,6.4vw,46px); }.begin-title-break,.begin-copy-break { display: none; }.begin-heading { margin-bottom: 33px; }.begin-heading > p { font-size: 17px; max-width: 540px; margin-inline: auto; }.begin-card { padding: 27px 28px; }.begin-icon { margin-top: 0; margin-bottom: 22px; width: 88px; height: 88px; }.begin-number { left: 29px; top: 36px; }.begin-arrow { right: 27px; top: 27px; width: 43px; height: 43px; }.begin-card h3 { font-size: 27px; }.begin-card p { font-size: 17px; }.begin-orb-top { opacity: .45; left: -260px; }.begin-orb-bottom { opacity: .3; }.begin-orb-right { opacity: .35; top: 55%; }.begin-orbit { opacity: .5; } }
@media (max-width:480px) { .begin-section { padding: 60px 0; }.begin-content { width: calc(100% - 36px); }.begin-kicker { font-size: 10px; letter-spacing: .18em; gap: 12px; }.begin-kicker::before,.begin-kicker::after { width: 22px; }.begin-heading h2 { font-size: clamp(32px,8.2vw,39px); margin-top: 20px; line-height: 1.13; }.begin-card { padding: 25px 23px; border-radius: 22px; }.begin-card h3 { font-size: 25px; }.begin-card p { font-size: 16px; }.begin-icon { width: 82px; height: 82px; }.begin-icon svg { width: 47px; height: 47px; } }
@media (prefers-reduced-motion:reduce) { .begin-section *,.begin-section *::before,.begin-section *::after { animation: none !important; transition: none !important; }.begin-card,.begin-card:hover,.begin-icon,.begin-arrow,.begin-orb { transform: none !important; translate: none !important; }.begin-section .reveal,.begin-section .reveal-stagger > * { opacity: 1; transform: none; } }
