html { scroll-padding-top: 100px; }
img { height: auto; }
.proof-strip.scroll-scene { min-height: 0; }
section[id], main[id] { scroll-margin-top: 0; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #0ea5e9; outline-offset: 5px; }
svg { width: 20px; height: 20px; flex: 0 0 auto; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 110; padding: 12px 18px; background: white; color: #07111f; transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.site-header { transition: color 180ms ease; }
.site-header.is-light-section { color: #07111f; }
.site-header.is-light-section::before { background: rgba(248,250,252,.96); mask-image: none; border-bottom: 1px solid #e2e8f0; }
.site-header.is-light-section .desktop-nav a { color: #334155; }
.site-header.is-light-section .brand-logo { filter: none; }
.site-header.is-light-section .language-switch, .site-header.is-light-section .menu-button, .site-header.is-light-section .header-cta { color: #07111f; background: rgba(255,255,255,.6); border-color: #cbd5e1; }
.site-header.is-light-section .language-switch button { color: #475569; }
.site-header.is-light-section .language-switch button.is-active { color: #07111f; background: #e0f2fe; }
.site-header.is-light-section .menu-button span { background: #07111f; }
.menu-open .site-header { color: #f8fafc; }
.menu-open .site-header::before { background: #07111f; }
.menu-open .site-header .menu-button span { background: #f8fafc; }
.menu-open .site-header .menu-button { background: #07111f; }
.hero-masthead, .hero-toolbar { position: relative; z-index: 4; max-width: 1360px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.hero-masthead { margin-bottom: 18px; }
.hero-masthead h1 { font-size: 26px; line-height: 1.2; font-weight: 700; }
.hero-masthead > span { font-size: 14px; color: #cbd5e1; }
.hero-showcase.scroll-scene { min-height: 0; }
.hero-shell { height: calc(100svh - 240px); min-height: 600px; }
.hero-feature-content h2 { max-width: 620px; margin: 0 0 18px; color: white; font-size: 64px; line-height: 1.04; text-transform: uppercase; overflow-wrap: anywhere; }
.hero-feature-content { padding-bottom: 112px; }
.hero-feature-content > p:not(.eyebrow) { line-height: 1.6; }
.hero-toolbar { margin-top: 12px; }
.hero-selectors { display: flex; gap: 4px; flex-wrap: wrap; }
.hero-selectors button { border: 0; border-bottom: 2px solid transparent; color: #cbd5e1; padding: 10px 16px; background: transparent; min-height: 44px; cursor: pointer; }
.hero-selectors button[aria-pressed="true"] { color: white; border-bottom-color: #38bdf8; }
.hero-feature-line span, .hero-feature-line span.is-running { animation: none; transform: scaleX(var(--hero-progress, 0)); }
.motion-toggle { display: grid; place-items: center; height: 44px; width: 44px; padding: 10px; background: rgba(7,17,31,.8); color: white; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; cursor: pointer; flex-shrink: 0; }
.motion-toggle:hover { background: #075985; }
.motion-toggle svg { display: block; }
.section.scroll-scene { min-height: auto; }
.section { padding-top: 90px; padding-bottom: 90px; }
.scroll-scene::after { display: none; }
[data-animate] { filter: none; will-change: auto; transform: translateY(20px); transition: opacity 480ms ease, transform 600ms ease; }
.scroll-scene .visual-frame, .scroll-scene .showcase-grid article, .scroll-scene .work-grid article { filter: none; }
.visual-showcase.scroll-scene { display: block; min-height: auto; }
.showcase-grid { display: flex; width: 100%; gap: 20px; align-items: stretch; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #64748b transparent; padding-bottom: 18px; cursor: grab; }
.showcase-grid article { display: flex; flex: 0 0 44%; flex-direction: column; min-width: 0; min-height: 420px; scroll-snap-align: start; scroll-snap-stop: always; }
.showcase-grid article[data-animate] { opacity: 1; transform: none; filter: none; }
.showcase-grid h3 { font-size: 24px; line-height: 1.25; overflow-wrap: anywhere; }
.showcase-grid p { font-size: 16px; line-height: 1.7; }
.showcase-grid.is-dragging { cursor: grabbing; user-select: none; scroll-snap-type: none; }
.showcase-grid img { pointer-events: none; }
.showcase-controls { width: min(1240px,100%); margin: 20px auto 0; display: flex; justify-content: flex-end; gap: 10px; }
.showcase-arrow { width: 44px; height: 44px; display: grid; place-items: center; padding: 10px; border: 1px solid #64748b; border-radius: 50%; background: transparent; color: #f8fafc; cursor: pointer; transition: background 180ms ease; }
.showcase-arrow:hover:not(:disabled) { background: #075985; }
.showcase-arrow:disabled { opacity: .35; cursor: default; }
body:not(.has-js) .showcase-controls { display: none; }
.showcase-grid img { aspect-ratio: 3/2; }
.about-infographic { width: 100%; max-width: 720px; margin: 0; justify-self: center; align-self: center; }
.about-infographic img { width: 100%; height: auto; object-fit: contain; filter: none; }
.about-infographic figcaption { max-width: 520px; margin: 18px auto 0; color: #475569; font-size: 14px; line-height: 1.6; text-align: center; }
.service-panel h2 { font-size: 64px; line-height: 1.08; overflow-wrap: anywhere; }
.service-count { margin-top: 28px; }
.service-copy-slide > p:not(.section-label) { font-size: 16px; margin-top: 18px; line-height: 1.65; }
.service-copy-slide ul { margin-top: 24px; font-size: 15px; }
.service-copy-slide { transition: none; }
.service-panel, .service-visual { border-radius: 24px; }
.problem-card-inner { transition: transform 680ms cubic-bezier(.22,1,.36,1); }
.problem-card:focus-visible .problem-card-inner { transform: none; }
.problem-card.is-flipped .problem-card-inner { transform: rotateY(180deg); }
.package-stage { min-height: 760px; border-radius: 24px; }
.package-slide, .package-slide.is-active { z-index: auto; opacity: 1; filter: none; transition: none; }
.package-slide::after { content: none; }
.package-stage::after { content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: linear-gradient(90deg,rgba(2,8,23,.94),rgba(2,8,23,.78) 42%,rgba(2,8,23,.18) 100%),linear-gradient(0deg,rgba(2,8,23,.85),transparent 45%); }
.package-slide img { z-index: 1; opacity: 0; transform: none; transition: opacity 650ms ease; }
.package-slide.is-active img { z-index: 2; opacity: 1; transform: none; }
.package-overlay { z-index: 4; top: 52px; left: 56px; max-width: min(640px,calc(100% - 112px)); visibility: hidden; }
.package-slide.is-active .package-overlay { visibility: visible; }
.package-overlay h2 { font-size: 42px; line-height: 1.12; max-width: 620px; }
.package-overlay p:not(.section-label) { font-size: 17px; line-height: 1.65; margin-top: 18px; }
.package-detail { margin-top: 20px; display: grid; gap: 8px; font-size: 14px; line-height: 1.5; color: #cbd5e1; }
.package-cta { margin-top: 22px; width: fit-content; }
.package-cues { z-index: 5; }
.package-pause { position: absolute; right: 24px; top: 24px; z-index: 5; }
.package-cue { min-height: 78px; }
.package-scope-note { max-width: 1240px; margin: 22px auto 0; font-size: 14px; color: #475569; }
.work-intro { max-width: 680px; margin-top: 20px; color: #cbd5e1; font-size: 15px; }
.case-head h2, .section-heading h2, .section-title h2, .visual-split h2, .split h2, .cta h2 { font-size: 44px; line-height: 1.15; }
.contact-availability { margin-top: 24px; color: #cbd5e1; font-size: 15px; }
.cta-layout { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: start; gap: 64px; }
.brief-form { display: grid; gap: 20px; min-width: 0; }
.brief-form label { display: grid; gap: 9px; color: #f8fafc; font-size: 14px; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.brief-form input, .brief-form select, .brief-form textarea { min-width: 0; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #64748b; border-radius: 6px; color: #07111f; background: #f8fafc; }
.brief-form textarea { resize: vertical; }
.brief-form .button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.brief-form .button { min-height: 48px; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.form-privacy { color: #cbd5e1; font-size: 13px; }
.form-status { min-height: 24px; color: #a5f3fc; font-size: 14px; }
dialog { max-width: min(600px,calc(100% - 32px)); padding: 36px; background: #f8fafc; color: #07111f; border: 0; border-radius: 8px; }
dialog::backdrop { background: rgba(2,8,23,.75); }
dialog h2 { font-size: 28px; margin: 20px 0; }
dialog p + p { margin-top: 18px; }
.dialog-close { display: grid; place-items: center; margin-left: auto; width: 44px; height: 44px; border: 1px solid #cbd5e1; border-radius: 50%; background: white; cursor: pointer; }
.footer .muted { font-size: 14px; }

@media (max-width: 1180px), (max-height: 760px) {
  .services-scroll { min-height: 0; }
  .services-sticky { position: relative; min-height: 0; overflow: visible; padding: 32px 24px 64px; }
  .service-stage, .service-scene { min-height: 0; }
  .service-panel { min-height: 0; padding: 36px; }
  .service-copy-viewport { min-height: 0; overflow: visible; }
  .service-copy-slide { display: none; position: relative; inset: auto; transform: none; }
  .service-copy-slide.is-active { display: flex; min-height: 420px; }
  .service-visual { min-height: 0; height: 360px; }
  .service-visual img { min-height: 0; height: 100%; }
  .service-image-slide:not(.is-active), .service-caption-slide:not(.is-active) { visibility: hidden; }
  .service-tabs { padding-top: 24px; }
  .service-tabs a { min-height: 44px; display: inline-flex; align-items: center; }
  .service-scene { grid-template-columns: minmax(0,1fr); }
  .cta-layout { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 1180px) {
  .site-header { grid-template-columns: minmax(0,1fr) auto auto; }
  .philosophy .visual-split { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .philosophy-logo-mark { min-width: 0; max-width: 100%; }
  .philosophy-logo-mark img { max-width: 100%; }
}
@media (max-width: 980px) {
  .hero-masthead { display: block; }
  .hero-masthead h1 { font-size: 26px; }
  .hero-masthead > span { display: block; margin-top: 6px; }
  .hero-shell { display: block; height: auto; min-height: 620px; }
  .hero-accordion-card { display: none; }
  .hero-accordion-card.is-active { display: flex; min-height: 620px; height: 620px; }
  .hero-collapsed-label { display: none; }
  .hero-feature-content { width: 85%; padding-left: 32px; padding-bottom: 110px; }
  .hero-feature-content h2 { font-size: 52px; }
  .package-overlay h2 { font-size: 38px; }
}
@media (max-width: 720px) {
  html { scroll-padding-top: 88px; }
  section[id], main[id] { scroll-margin-top: 0; }
  .hero-showcase { padding: 90px 16px 28px; }
  .hero-masthead h1 { font-size: 24px; }
  .hero-masthead > span { font-size: 12px; }
  .hero-shell { min-height: 550px; }
  .hero-accordion-card.is-active { min-height: 550px; height: 550px; border-radius: 16px; }
  .hero-feature-content { width: 100%; padding: 0 24px 28px; }
  .hero-feature-content h2 { font-size: 38px; line-height: 1.08; max-width: 100%; }
  .hero-feature-content .eyebrow { font-size: 11px; line-height: 1.6; margin-bottom: 14px; }
  .hero-feature-content > p:not(.eyebrow) { font-size: 14px; }
  .hero-controls { right: 20px; gap: 8px; }
  .hero-feature-line { left: 24px; width: 38%; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-selectors { gap: 0; }
  .hero-selectors button { padding: 8px 9px; font-size: 12px; }
  .hero-toolbar { gap: 6px; }
  .language-switch button { min-height: 40px; min-width: 36px; }
  .motion-toggle { width: 40px; height: 40px; padding: 8px; }
  .section { padding: 64px 20px; }
  .showcase-grid { gap: 16px; }
  .showcase-grid article { flex-basis: 88%; min-height: 420px; }
  .showcase-grid h3 { font-size: 22px; }
  .showcase-grid p { font-size: 15px; }
  .case-head h2, .section-heading h2, .section-title h2, .visual-split h2, .split h2, .cta h2 { font-size: 32px; }
  .services-sticky { padding: 24px 20px 56px; }
  .service-panel { padding: 28px 24px; border-radius: 16px; }
  .service-copy-slide.is-active { min-height: 440px; justify-content: flex-start; }
  .service-panel h2 { font-size: 42px; }
  .service-copy-slide > p:not(.section-label) { font-size: 15px; }
  .service-copy-slide ul { font-size: 14px; }
  .service-count { margin-top: 24px; }
  .service-tabs { gap: 10px; flex-wrap: wrap; }
  .service-tabs a { font-size: 13px; }
  .service-visual { height: 300px; border-radius: 16px; }
  .service-caption-viewport { width: calc(100% - 28px); right: 14px; bottom: 14px; }
  .service-visual figcaption { padding: 16px; font-size: 13px; }
  .package-stage { min-height: 840px; border-radius: 16px; }
  .package-stage::after { background: linear-gradient(180deg,rgba(2,8,23,.84),rgba(2,8,23,.76) 55%,rgba(2,8,23,.94)); }
  .package-overlay { top: 70px; left: 24px; right: 24px; max-width: none; }
  .package-overlay h2 { font-size: 28px; line-height: 1.16; }
  .package-overlay p:not(.section-label) { font-size: 15px; }
  .package-kicker { font-size: 13px; }
  .package-detail { font-size: 13px; gap: 6px; }
  .package-cta { width: 100%; font-size: 13px; }
  .package-cues { left: 24px; right: 24px; bottom: 22px; gap: 14px; }
  .package-cue span { font-size: 12px; }
  .package-cue { min-height: 66px; }
  .package-pause { right: 18px; top: 16px; }
  .form-row { grid-template-columns: 1fr; }
  .brief-form .button-row { flex-direction: column; }
  .brief-form .button { justify-content: center; }
  dialog { padding: 24px; }
}
@media (max-width: 360px) {
  .site-header { padding: 14px 12px; gap: 7px; }
  .site-header .brand-logo { width: 122px; }
  .menu-button { width: 40px; height: 40px; }
  .hero-feature-content h2 { font-size: 32px; }
  .hero-masthead h1 { font-size: 21px; }
  .hero-selectors button { padding: 8px 7px; font-size: 11px; }
  .service-panel h2 { font-size: 36px; }
  .package-stage { min-height: 920px; }
}
@media (prefers-reduced-motion: reduce) {
  .services-scroll { min-height: 0; }
  .services-sticky { position: relative; overflow: visible; min-height: 0; }
  .service-copy-viewport { overflow: visible; min-height: 0; }
  .service-copy-slide { position: relative; display: none; }
  .service-copy-slide.is-active { display: flex; }
  .service-visual { height: 500px; min-height: 0; }
  .service-image-slide:not(.is-active), .service-caption-slide:not(.is-active) { visibility: hidden; }
  .service-stage, .service-scene { min-height: 0; }
  .problem-card.is-flipped .problem-card-inner { transform: rotateY(180deg); }
}
body:not(.has-js) [data-animate] { opacity: 1; transform: none; filter: none; }
body:not(.has-js) .services-scroll { min-height: 0; }
body:not(.has-js) .services-sticky { position: relative; }
body:not(.has-js) .service-copy-viewport { min-height: 0; overflow: visible; }
body:not(.has-js) .service-copy-slide { position: relative; opacity: 1; display: block; transform: none; margin-bottom: 48px; }
body:not(.has-js) .service-visual { min-height: 500px; }
body:not(.has-js) .hero-toolbar, body:not(.has-js) .hero-controls, body:not(.has-js) .package-pause { display: none; }
body:not(.has-js) .brief-form button { display: none; }
.package-fallback { margin: 28px auto; max-width: 1240px; color: #07111f; }
.package-fallback h2 { font-size: 28px; margin-bottom: 16px; }
