/* Brand experience: sculptural imagery and restrained, optional motion. */
:root { --cream:#f7f7f3; --experience-ease:cubic-bezier(.22,1,.36,1); }
body { background:var(--cream); }
.header { position:fixed; inset:0 0 auto; background:rgba(247,247,243,.96); border-color:#d8dde3; transition:background .4s,color .4s,border-color .4s; backdrop-filter:blur(16px); }
.nav-wrap { max-width:1480px; padding:0 5%; }
.header.over-hero { color:#fff; background:rgba(9,22,40,.18); border-color:#ffffff24; }
.header.over-hero .brand-symbol { filter:brightness(0) invert(1); }
.header.over-hero .brand-name small { color:#bac9df; }
.header.over-hero .desktop-nav a:after { background:white; }
.header.over-hero .header-cta { border-color:#ffffff65; color:white; }
.header.over-hero .header-cta:hover { background:#fff; color:#172b46; }
.header.over-hero .menu-toggle span { background:white; }
.mobile-menu { color:var(--ink); background:var(--cream); }
.hero-cinematic { isolation:isolate; display:block; max-width:none; height:min(850px,100svh); min-height:680px; padding:0; overflow:clip; background:#0b192d; color:#fff; }
.hero-scene { position:absolute; z-index:-2; inset:-16px; transform:translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0); transition:transform 1.5s var(--experience-ease); }
.scene-camera { position:relative; z-index:0; width:100%; height:100%; padding-top:60px; transform-origin:76% 52%; animation:camera-drift 22s ease-in-out infinite alternate; }
.scene-camera picture,.scene-camera img { display:block; height:100%; width:100%; }
.scene-camera picture { transform:scale(.85); transform-origin:100% 50%; mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 82%,transparent),linear-gradient(to right,transparent,#000 15%); mask-composite:intersect; }
.scene-camera img { object-fit:cover; object-position:58% 50%; }
.scene-shade { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(7,20,37,.55),rgba(7,20,37,.05) 55%,transparent 75%),linear-gradient(0deg,#08182be6 0,transparent 24%); }
.scene-light { position:absolute; z-index:2; inset:-30%; background:linear-gradient(110deg,transparent 42%,#c3dcff0d 49%,#dbe8ff18 50%,transparent 58%); mix-blend-mode:screen; animation:light-travel 15s ease-in-out infinite alternate; pointer-events:none; }
.hero-layout { width:min(1440px,100%); height:100%; margin:auto; padding:120px 6% 125px; display:flex; align-items:center; }
.hero-cinematic .hero-copy { width:54%; padding:0; }
.hero-cinematic .eyebrow { color:#bacde6; font-size:14px; letter-spacing:.01em; animation:soft-in 1.1s both; }
.hero-cinematic .small-line { width:28px; background:#a4c8f8; }
.hero-cinematic h1 { font-size:clamp(44px,4.6vw,68px); line-height:1.32; font-weight:600; letter-spacing:-.045em; margin:29px 0 27px; }
.hero-line { display:block; overflow:hidden; padding-bottom:4px; }
.hero-line>span { display:block; animation:headline-enter 1.1s var(--experience-ease) both; }
.hero-line:nth-child(2)>span { animation-delay:.12s; }
.hero-line em { font-style:normal; font-weight:600; color:#b8d6ff; }
.hero-cinematic .hero-description { color:#ced7e4; font-size:17px; line-height:1.9; animation:soft-in 1.3s .18s both; }
.hero-cinematic .hero-actions { gap:28px; margin-top:34px; animation:soft-in 1.3s .3s both; }
.hero-cinematic .button-primary { background:#f5f6f3; color:#172b46; min-width:155px; border:1px solid #f5f6f3; }
.hero-cinematic .button-primary:hover { background:#d5e5f9; border-color:#d5e5f9; }
.hero-cinematic .text-link { color:#f2f5f9; border-bottom-color:#b5c3d36b; }
.button span,.text-link span,.circle-arrow { transition:transform .35s var(--experience-ease); }
.button:hover span,.text-link:hover span { transform:translate(3px,-3px); }
.hero-bottom { position:absolute; bottom:34px; left:6%; right:6%; display:flex; align-items:center; justify-content:space-between; gap:24px; color:#c6d2e2; }
.discover-link { font-size:13px; display:flex; align-items:center; gap:14px; }
.discover-link>span:last-child { font-size:18px; }
.scroll-track { width:28px; height:1px; position:relative; background:#ffffff35; overflow:hidden; }
.scroll-track:after { content:''; position:absolute; inset:0; background:#c6dcff; transform:translateX(-100%); animation:track-flow 3s ease-in-out infinite; }
.hero-signature { font-size:11px; letter-spacing:.14em; margin-left:auto; margin-right:28px; }
.motion-toggle { background:transparent; color:#d2ddec; border:1px solid #ffffff40; border-radius:30px; display:flex; align-items:center; gap:10px; font-size:11px; padding:8px 14px; min-height:38px; }
.motion-icon { font-size:13px; min-width:10px; }
.motion-toggle:hover { background:#ffffff10; }
.credentials-strip { max-width:none; padding:30px max(6%,calc((100% - 1260px)/2)); background:#101f34; color:#d0daea; border-top:1px solid #ffffff1f; border-bottom:0; gap:24px; }
.credentials-strip>div { display:flex; justify-content:center; align-items:center; gap:20px; border-color:#ffffff22; }
.credentials-strip span { font-size:14px; margin:0; color:#b3c2d8; }
.credentials-strip strong { font-size:36px; font-weight:500; line-height:1.2; letter-spacing:-.05em; color:white; }
.credentials-strip strong>span { margin-left:4px; font-size:16px; }
.credentials-strip .credential-label { font-size:17px; font-weight:500; color:#f1f4f8; }
.section { padding-top:112px; padding-bottom:112px; }
.section-label { border:0; margin-bottom:44px; padding:0; }
.section-label span:first-child { color:#2765a3; font-size:12px; letter-spacing:.05em; }
.section-label span:last-child { font-size:15px; }
.about-grid { grid-template-columns:1.05fr 1fr; gap:80px; }
.about-grid h2 { font-size:40px; line-height:1.5; }
.about-grid .muted { color:#718197; }
.about-text { padding-top:6px; }
.principles { margin-top:68px; gap:48px; }
.principles article { position:relative; padding-top:24px; }
.principles article:before { content:''; position:absolute; top:-1px; left:0; width:40px; height:2px; background:#2969aa; transform-origin:left; transition:width .7s var(--experience-ease); }
.principles article:hover:before { width:100%; }
.principles h3 { margin-top:22px; }
.services-section { background:#e9eef3; }
.services-section>.section { display:grid; grid-template-columns:.8fr 1.2fr; column-gap:80px; align-items:start; }
.services-section .section-label { grid-column:1/-1; }
.services-section .section-heading { display:block; position:sticky; top:140px; margin:0; }
.services-section h2 { font-size:36px; }
.services-section .section-heading>p { margin-top:22px; }
.service-emblem { margin-top:48px; display:flex; align-items:center; gap:22px; color:#8395ab; }
.service-emblem img { width:74px; height:74px; opacity:.5; }
.service-emblem>span { font-size:10px; letter-spacing:.14em; max-width:85px; line-height:1.8; }
.service-list { border-top:1px solid #a6b5c8; }
.service-row { padding:30px 4px; grid-template-columns:32px 1fr 44px; gap:9px 20px; position:relative; transition:background .3s,padding .4s var(--experience-ease); }
.service-row:after { content:''; position:absolute; bottom:-1px; left:0; width:100%; height:1px; transform:scaleX(0); transform-origin:left; background:#1e5b95; transition:transform .6s var(--experience-ease); }
.service-row:hover:after,.service-row:focus-visible:after { transform:scaleX(1); }
.service-no { grid-column:1; grid-row:1; align-self:center; font-size:13px; color:#627e9c; }
.service-main { grid-column:2; grid-row:1; }
.service-main strong { font-size:25px; }
.service-summary { grid-column:2; grid-row:2; margin-top:3px; color:#5f7186; font-size:15px; }
.circle-arrow { grid-column:3; grid-row:1/3; width:42px; height:42px; font-size:22px; border-color:#b6c3d4; }
.service-row:hover { padding-left:12px; background:#ffffff50; }
.service-row:hover .circle-arrow { transform:rotate(45deg); background:#1f4f7b; }
.service-help { grid-column:2; text-align:left; margin-top:24px; font-size:13px; }
.service-help a { display:inline-block; margin:5px 0 0; }
.expert-grid { grid-template-columns:1fr 1fr; gap:88px; align-items:center; }
.expert-visual.brand-mockup { aspect-ratio:4/5; overflow:hidden; background:#dce2e7; }
.brand-mockup>img { height:110%; top:-5%; transition:transform 1.5s var(--experience-ease); transform:translateY(var(--image-shift,0px)) scale(1.015); }
.brand-mockup figcaption { padding:80px 32px 32px; background:linear-gradient(transparent,#112538bc); align-items:flex-end; }
.brand-mockup figcaption>span { font-size:27px; font-weight:500; letter-spacing:-.035em; line-height:1.5; }
.brand-mockup figcaption small { font-size:10px; color:#d8e2ed; }
.expert-copy h2 { font-size:37px; }
.expert-copy>p.expert-name { margin-top:30px; }
.expert-intro { color:#40546d; }
.career { margin:28px 0; }
.career dt { color:#6c8098; }
.process-section { background:#edf0f2; }
.process-section .section { padding-top:88px; padding-bottom:88px; }
.steps { grid-template-columns:repeat(4,1fr); gap:30px; }
.steps article { padding-top:26px; }
.steps article:before { width:5px; height:5px; top:-3px; background:#3476b1; }
.steps h3 { margin-top:18px; }
.faq-section { padding-top:96px; padding-bottom:96px; }
.contact-section { background:radial-gradient(ellipse at 0% 100%,#21456b,#101f35 70%); }
.contact-inner { padding-top:88px; padding-bottom:88px; gap:88px; }
.contact-copy h2 { font-size:34px; }
.contact-details dl>div { border-bottom-color:#ffffff20; }
.contact-copy .button:hover span { transform:translate(3px,-3px); }
footer { padding-top:48px; }
/* Content remains visible without JavaScript or with reduced motion. */
.motion-ready .reveal:not(.is-visible) { opacity:0; transform:translateY(26px); }
.reveal { transition:opacity .85s var(--experience-ease),transform .85s var(--experience-ease); transition-delay:var(--reveal-delay,0ms); }
.motion-paused .scene-camera,.motion-paused .scene-light,.motion-paused .scroll-track:after { animation-play-state:paused; }
.hero-cinematic[data-active="false"] .scene-camera,.hero-cinematic[data-active="false"] .scene-light,.hero-cinematic[data-active="false"] .scroll-track:after { animation-play-state:paused; }
.motion-paused .hero-scene { transform:none; }
.motion-paused .reveal,.motion-ready.motion-paused .reveal:not(.is-visible) { opacity:1; transform:none; transition:none; }
.motion-paused .brand-mockup>img { transform:none; }
@keyframes camera-drift { from{transform:scale(1.025) translate3d(0,0,0)} to{transform:scale(1.085) translate3d(-.7%,-.4%,0)} }
@keyframes light-travel { from{transform:translateX(-22%) rotate(-4deg);opacity:.25} to{transform:translateX(17%) rotate(4deg);opacity:.65} }
@keyframes track-flow { 0%,15%{transform:translateX(-100%)} 65%,100%{transform:translateX(100%)} }
@keyframes headline-enter { from{transform:translateY(105%)} to{transform:translateY(0)} }
@keyframes soft-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
@media(min-width:1600px) { .hero-cinematic{min-height:760px}.hero-layout{padding-left:5%;padding-right:5%}.hero-cinematic h1{font-size:72px} }
@media(max-width:1100px) {
  .nav-wrap { padding:0 4%; }
  .hero-cinematic { min-height:640px; height:85svh; max-height:820px; }
  .hero-layout { padding:110px 5% 110px; }
  .hero-cinematic .hero-copy { width:55%; }
  .hero-cinematic h1 { font-size:46px; }
  .hero-cinematic .hero-description { font-size:16px; }
  .hero-cinematic .hero-actions { gap:20px; }
  .hero-bottom { left:5%;right:5%; }
  .credentials-strip { padding:28px 5%; gap:16px; }
  .credentials-strip>div { flex-direction:column; gap:5px; }
  .credentials-strip strong { font-size:26px; }
  .credentials-strip .credential-label { font-size:16px; }
  .credentials-strip span { font-size:13px; }
  .section { padding-top:88px; padding-bottom:88px; }
  .about-grid,.expert-grid,.contact-inner { gap:48px; }
  .about-grid h2 { font-size:34px; }
  .services-section>.section { gap:0 48px; }
  .services-section h2,.expert-copy h2 { font-size:31px; }
  .service-main strong { font-size:23px; }
  .service-row { gap:9px 16px; }
  .steps { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:800px) {
  .hero-cinematic { min-height:630px; max-height:760px; }
  .hero-cinematic h1 { font-size:39px; }
  .hero-cinematic .hero-copy { width:58%; }
  .hero-cinematic .hero-actions { flex-wrap:nowrap; }
  .hero-cinematic .hero-actions .text-link { display:none; }
  .scene-camera img { object-position:62% center; }
  .scene-shade { background:linear-gradient(90deg,#081a2dd9,transparent 90%),linear-gradient(0deg,#08182bcc,transparent 35%); }
  .hero-cinematic .eyebrow { font-size:12px; }
  .about-grid { grid-template-columns:1fr; gap:30px; }
  .principles { gap:28px; }
  .services-section>.section { grid-template-columns:1fr; }
  .services-section .section-heading { position:static; margin-bottom:32px; }
  .service-emblem { display:none; }
  .service-help { grid-column:1; }
  .expert-grid { grid-template-columns:.9fr 1fr; gap:32px; }
  .expert-copy h2 { font-size:28px; }
  .brand-mockup figcaption { padding:40px 22px 24px; }
  .brand-mockup figcaption>span { font-size:22px; }
  .brand-mockup figcaption small { display:none; }
  .contact-inner { grid-template-columns:1fr; gap:40px; }
}
@media(max-width:600px) {
  .header { height:72px; }
  .nav-wrap { padding:0 20px; }
  .hero-cinematic { display:block; height:900px; min-height:0; max-height:none; padding:0; }
  .hero-scene { inset:0; background:#0d1b30; }
  .scene-camera { position:absolute; top:440px; bottom:60px; width:100%; height:auto; padding-top:0; transform-origin:70% 65%; animation:mobile-drift 18s ease-in-out infinite alternate; }
  .scene-camera img { object-fit:cover; object-position:84% center; }
  .scene-camera picture { transform:scale(.85); transform-origin:50% 50%; }
  .scene-shade { background:linear-gradient(180deg,#0d1b30 0%,#0d1b30 43%,#0d1b30d9 48%,transparent 58%,transparent 79%,#0d1b30 96%); }
  .scene-light { opacity:.3; }
  .hero-layout { display:block; padding:115px 24px 0; }
  .hero-cinematic .hero-copy { width:100%; padding:0; }
  .hero-cinematic h1 { font-size:42px; margin:23px 0 20px; line-height:1.32; }
  .hero-cinematic .eyebrow { font-size:13px; }
  .hero-cinematic .hero-description { font-size:16px; line-height:1.8; }
  .hero-cinematic .hero-actions { margin-top:25px; gap:24px; }
  .hero-cinematic .hero-actions .text-link { display:inline-flex; font-size:14px; }
  .hero-cinematic .button-primary { min-width:135px; }
  .hero-bottom { left:24px; right:24px; bottom:30px; gap:16px; }
  .hero-signature { display:none; }
  .discover-link { font-size:12px; gap:10px; }
  .motion-toggle { padding:6px 11px; font-size:10px; gap:7px; }
  .scroll-track { width:18px; }
  .credentials-strip { grid-template-columns:repeat(3,1fr); padding:26px 18px; gap:10px; }
  .credentials-strip>div { text-align:center; gap:8px; border-right:1px solid #ffffff24; }
  .credentials-strip strong { font-size:28px; }
  .credentials-strip strong>span { font-size:13px; margin-left:3px; }
  .credentials-strip .credential-label { font-size:13px; line-height:1.65; min-height:32px; display:flex; align-items:center; }
  .credentials-strip>div>span:last-child { font-size:11px; line-height:1.5; word-break:keep-all; }
  .section { padding:64px 24px; }
  .section-label { margin-bottom:30px; }
  .about-grid h2 { font-size:30px; }
  .about-grid { gap:26px; }
  .principles { margin-top:40px; gap:28px; }
  .principles article { padding-top:20px; }
  .principles h3 { margin:0 0 8px; }
  .services-section h2 { font-size:30px; }
  .services-section .section-heading>p { margin-top:18px; }
  .service-row { grid-template-columns:25px 1fr 36px; padding:26px 0; gap:8px 12px; }
  .service-main strong { font-size:23px; }
  .service-summary { font-size:15px; }
  .circle-arrow { width:36px; height:36px; }
  .service-help { font-size:13px; margin-top:22px; }
  .expert-grid { grid-template-columns:1fr; gap:34px; }
  .expert-visual.brand-mockup { aspect-ratio:4/4.6; }
  .brand-mockup figcaption { padding:50px 24px 26px; }
  .brand-mockup figcaption>span { font-size:26px; }
  .brand-mockup figcaption small { display:block; font-size:10px; }
  .expert-copy h2 { font-size:30px; }
  .expert-copy>p.expert-name { margin-top:26px; }
  .process-section .section,.faq-section { padding:64px 24px; }
  .steps { grid-template-columns:1fr; gap:28px; }
  .steps article { padding-top:20px; }
  .steps h3 { margin-top:12px; }
  .contact-inner { padding:56px 24px 42px; }
  .contact-copy h2 { font-size:29px; }
  .motion-ready .reveal:not(.is-visible) { transform:translateY(18px); }
}
@media(max-width:360px) {
  .hero-layout { padding-left:20px; padding-right:20px; }
  .hero-cinematic h1 { font-size:36px; }
  .hero-cinematic .eyebrow { font-size:12px; }
  .hero-cinematic .hero-actions { gap:18px; }
  .hero-cinematic .hero-actions .text-link { font-size:13px; }
  .hero-cinematic .button-primary { min-width:120px; }
  .hero-bottom { left:20px;right:20px; }
  .credentials-strip { padding-left:12px;padding-right:12px; }
}
@keyframes mobile-drift { from{transform:scale(1.01)} to{transform:scale(1.07)} }
@media(prefers-reduced-motion:reduce) {
  .scene-camera,.scene-light,.scroll-track:after,.hero-line>span,.hero-cinematic .eyebrow,.hero-cinematic .hero-description,.hero-cinematic .hero-actions { animation:none!important; }
  .hero-scene,.brand-mockup>img { transform:none!important; }
  .motion-ready .reveal:not(.is-visible),.reveal { opacity:1; transform:none; transition:none; }
}
