@font-face {
  font-family: Montserrat;
  src: url("fonts/montserrat-black-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: Roboto;
  src: url("fonts/roboto-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --bronze: #bd957b;
  --navy: #102962;
  --light: #f2f2f2;
  color-scheme: light;
  font-family: Roboto, Arial, sans-serif;
  color: var(--navy);
  background: var(--light);
  font-synthesis: none;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
body {
  margin: 0;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-underline-offset: 0.2em;
}
button {
  font: inherit;
}
p,
h1,
h2,
ul {
  margin: 0;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
a:focus-visible,
button:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 7px;
}
[hidden] {
  display: none !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  top: 1rem;
  left: 1rem;
  z-index: 100;
  background: var(--navy);
  color: white;
  padding: 0.8rem 1rem;
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: translateY(0);
}
.page {
  max-width: 1920px;
  margin-inline: auto;
  --u: min(calc(var(--canvas-width) / 1920), 1px);
  --curve: url("shapes/curve-desktop.svg");
  isolation: isolate;
}
.stage {
  position: relative;
  --tip: calc(390 * var(--u));
  clip-path: none;
  -webkit-mask-image: linear-gradient(#000, #000), var(--curve);
  mask-image: linear-gradient(#000, #000), var(--curve);
  -webkit-mask-size:
    100% calc(100% - var(--tip) + 1px),
    100% var(--tip);
  mask-size:
    100% calc(100% - var(--tip) + 1px),
    100% var(--tip);
  -webkit-mask-position: top, bottom;
  mask-position: top, bottom;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  overflow: hidden;
  scroll-margin-top: 2rem;
}
.bronze {
  background: var(--bronze);
  color: var(--light);
}
.photo {
  filter: grayscale(1);
  transition: filter 1100ms cubic-bezier(0.4, 0, 0.2, 1);
}
.photo.in-color {
  filter: grayscale(0);
}
.hero {
  height: calc(1135 * var(--u));
  z-index: 8;
}
.hero-photo {
  position: absolute;
  inset: 0 0 auto;
}
.hero-photo img {
  width: 100%;
}
.hero-title {
  position: relative;
  margin-left: calc(127 * var(--u));
  padding-top: calc(115 * var(--u));
  width: calc(790 * var(--u));
}
.hero-line,
.hero-line-text {
  display: block;
}
/* The extra inset preserves accents and the natural edge of the heavy type. */
.hero-line {
  clip-path: inset(-0.15em -0.1em);
}
.hero-word {
  display: inline-block;
  vertical-align: top;
}
@media (prefers-reduced-motion: no-preference) {
  .reveal-content.headline-pending,
  .hero-title.headline-pending .hero-word {
    opacity: 0;
  }
  .reveal-content.headline-entering {
    animation: content-rise 1050ms cubic-bezier(0.22, 0.61, 0.36, 1) both;
  }
  .hero-title.headline-entering .hero-word {
    animation: headline-word 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
  }
  .hero-title.headline-entering [data-word="2"] {
    animation-delay: 190ms;
  }
  .hero-title.headline-entering [data-word="3"] {
    animation-delay: 380ms;
  }
  .hero-title.headline-entering [data-word="4"] {
    animation-delay: 570ms;
  }
  .hero-title.headline-entering [data-word="5"] {
    animation-delay: 760ms;
  }
}
@keyframes content-rise {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes headline-word {
  from {
    opacity: 0;
    transform: translateY(115%);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media print {
  .headline-pending,
  .headline-entering,
  .hero-word {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}
.profile {
  z-index: 7;
  margin-top: calc(-389 * var(--u));
  min-height: calc(1163 * var(--u));
  padding: calc(544 * var(--u)) calc(80 * var(--u)) calc(365 * var(--u));
}
.profile-copy {
  text-align: center;
}
.name-title {
  width: calc(1118 * var(--u));
  margin-inline: auto;
}
.profile p {
  font-size: clamp(18px, calc(45 * var(--u)), 45px);
  font-weight: 300;
  line-height: 1.24;
  margin: calc(54 * var(--u)) auto 0;
  max-width: calc(1190 * var(--u));
}
.site-header {
  position: fixed;
  z-index: 30;
  inset: 0 max(3.75vw, calc((100vw - 1920px) / 2 + 72px)) auto auto;
}
.svg-definitions {
  position: absolute;
  pointer-events: none;
}
.menu-toggle {
  position: relative;
  display: block;
  padding: 0;
  background: none;
  color: var(--light);
  border: 0;
}
.menu-flag {
  width: 100%;
}
.menu-lines {
  position: absolute;
  top: 51%;
  left: 32%;
  width: 36%;
  height: 18%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.menu-lines span {
  height: 14%;
  background: var(--light);
  transition:
    transform 0.22s,
    opacity 0.22s;
}
.menu-toggle[aria-expanded="true"] .menu-lines span:first-child {
  transform: translateY(300%) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] .menu-lines span:nth-child(2) {
  opacity: 0;
}
.menu-toggle[aria-expanded="true"] .menu-lines span:last-child {
  transform: translateY(-300%) rotate(-45deg);
}
.navigation {
  background: var(--navy);
  color: var(--light);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  box-shadow:
    0 18px 48px #00000059,
    0 3px 12px #00000038;
  overflow-y: auto;
}
.navigation a {
  font-size: clamp(16px, 1.5vw, 24px);
  font-weight: 800;
  text-decoration: none;
  text-transform: uppercase;
}
.navigation a:hover {
  color: var(--bronze);
}
.navigation .navigation-legal {
  font-size: 16px;
  font-weight: 300;
  text-transform: none;
  border-top: 1px solid #ffffff40;
  padding-top: 1rem;
  margin-top: 0.25rem;
}
.js-menu .navigation {
  position: absolute;
  right: 0;
  top: 0;
  min-width: min(410px, calc(100vw - 32px));
}
.js-menu .menu-toggle {
  z-index: 1;
}
/* Keep the original solid panel as the fallback when blur is unsupported. */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .js-menu .navigation {
    background: rgb(16 41 98 / 92%);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
  }
  .js-menu .menu-toggle[aria-expanded="true"] .menu-flag {
    /* Extract the white mark at render time from the unchanged PSD asset.
       This removes its opaque navy backing while preserving the letter edges. */
    filter: url("#menu-white-mark");
  }
}
.js-menu .menu-fallback {
  display: none;
}
.menu-fallback {
  display: block;
  padding: 1rem;
  background: var(--navy);
  color: var(--light);
}
@media (width < 900px) {
  .page {
    --u: calc(var(--canvas-width) / 1080);
    --curve: url("shapes/curve-mobile.svg?v=20260907-r21");
  }
  .stage {
    --tip: calc(210 * var(--u));
  }
  .hero {
    height: calc(1735 * var(--u));
  }
  .hero-title {
    width: calc(680 * var(--u));
    margin-left: calc(53 * var(--u));
    padding-top: calc(54 * var(--u));
  }
  .profile {
    margin-top: calc(-210 * var(--u));
    min-height: calc(1297 * var(--u));
    padding: calc(373 * var(--u)) calc(78 * var(--u)) calc(380 * var(--u));
  }
  .profile-copy {
    text-align: left;
  }
  .name-title {
    width: calc(838 * var(--u));
    max-width: 100%;
    margin: 0;
  }
  .profile p {
    font-size: clamp(18px, calc(60 * var(--u)), 32px);
    line-height: 1.2;
    margin-top: calc(104 * var(--u));
    max-width: none;
  }
  .desktop-break {
    display: none;
  }
  .site-header {
    right: 8.148vw;
  }
  .navigation a {
    font-size: clamp(16px, 3.7vw, 25px);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

h1,
h2 {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0;
  line-height: 1.05;
}
.hero-title {
  font-size: calc(86 * var(--u));
  width: calc(920 * var(--u));
  line-height: 0.99;
  letter-spacing: 0;
  padding-top: calc(100 * var(--u));
}
.name-title {
  font-size: calc(90.8 * var(--u));
  width: auto;
  letter-spacing: 0;
  line-height: 1.06;
}
.profile p {
  margin-top: calc(41 * var(--u));
}
@media (width < 900px) {
  .hero-title {
    font-size: calc(72 * var(--u));
    padding-top: calc(31 * var(--u));
    width: calc(755 * var(--u));
    line-height: 1.04;
  }
  .name-title {
    font-size: calc(107.2 * var(--u));
    letter-spacing: 0;
    line-height: 1.14;
  }
  .name-title span {
    display: block;
  }
  .profile p {
    margin-top: calc(92 * var(--u));
  }
}
/* The section proportions follow the 1920 px desktop artwork. Text stays in
   normal flow, so larger text can increase the height of every content panel. */
html {
  scroll-behavior: smooth;
}
h1[id],
h2[id] {
  scroll-margin-top: clamp(90px, 17vw, 320px);
}
h1[id]:focus,
h2[id]:focus {
  outline: none;
}
.section-copy {
  position: relative;
  z-index: 2;
}
.section-copy h2 {
  font-size: calc(98 * var(--u));
  line-height: 1.06;
}
.plain-list {
  list-style: none;
  padding: 0;
}
.section-copy p,
.plain-list,
address,
.contact-details {
  font-size: clamp(18px, calc(45 * var(--u)), 45px);
  font-weight: 300;
  line-height: 1.78;
}
.split-photo {
  position: absolute;
  display: block;
  z-index: 1;
}
.split-photo img {
  width: 100%;
  max-width: none;
  height: auto;
}
.brand-title img {
  width: 100%;
}
.brand-title {
  letter-spacing: normal;
}
.activities {
  z-index: 6;
  background: var(--navy);
  color: var(--light);
  margin-top: calc(-390 * var(--u));
  min-height: calc(1473 * var(--u));
  padding: calc(515 * var(--u)) calc(100 * var(--u)) calc(390 * var(--u))
    calc(1104 * var(--u));
}
.activities .split-photo {
  left: 0;
  top: calc(-9 * var(--u));
  width: calc(1007 * var(--u));
}
.activities .plain-list {
  margin-top: calc(57 * var(--u));
}
.merits {
  z-index: 5;
  background: var(--light);
  margin-top: calc(-386 * var(--u));
  min-height: calc(1382 * var(--u));
  padding: calc(545 * var(--u)) calc(80 * var(--u)) calc(306 * var(--u));
}
.merits .section-copy {
  width: calc(1100 * var(--u));
  max-width: 100%;
  margin: auto;
}
.merits h2 {
  color: var(--bronze);
  text-align: center;
}
.merits .plain-list {
  margin-top: calc(57 * var(--u));
  text-align: center;
  white-space: normal;
  text-wrap: balance;
}
.merits .plain-list li + li {
  margin-top: 0.15em;
}
.iitr {
  z-index: 4;
  margin-top: calc(-389 * var(--u));
  min-height: calc(1273 * var(--u));
  padding: calc(443 * var(--u)) 50% calc(420 * var(--u)) calc(144 * var(--u));
}
.iitr .brand-title {
  width: calc(603 * var(--u));
}
.iitr p {
  margin-top: calc(101 * var(--u));
}
.iitr .split-photo {
  left: calc(974 * var(--u));
  top: calc(-126 * var(--u));
  width: calc(1612 * var(--u));
}
.mingasoft {
  z-index: 3;
  margin-top: calc(-331 * var(--u));
  min-height: calc(1293 * var(--u));
  padding: calc(527 * var(--u)) calc(108 * var(--u)) calc(420 * var(--u))
    calc(1104 * var(--u));
}
.mingasoft .brand-title {
  width: calc(689 * var(--u));
  max-width: 100%;
}
.mingasoft p {
  margin-top: calc(75 * var(--u));
}
.mingasoft .split-photo {
  left: 0;
  top: calc(-9 * var(--u));
  width: calc(1166 * var(--u));
}
.contact {
  z-index: 2;
  background: var(--light);
  margin-top: calc(-386 * var(--u));
  min-height: calc(1318 * var(--u));
  padding: calc(487 * var(--u)) calc(80 * var(--u)) calc(205 * var(--u));
}
.contact .section-copy {
  max-width: calc(1140 * var(--u));
  margin: auto;
  text-align: center;
}
.contact .section-copy h2 {
  font-size: calc(61.9 * var(--u));
  line-height: 1.25;
  color: var(--bronze);
  letter-spacing: 0;
}
.contact-mobile {
  display: none;
}
.contact-link {
  display: block;
  width: calc(255 * var(--u));
  margin: calc(67 * var(--u)) auto 0;
  border-radius: 50%;
  transition: transform 0.2s ease;
  color: var(--bronze);
}
.contact-link:hover {
  transform: translateY(-5px);
}
.contact-link img {
  width: 100%;
}
.imprint {
  z-index: 1;
  margin-top: calc(-385 * var(--u));
  min-height: calc(1348 * var(--u));
  background: var(--navy);
  color: var(--light);
  clip-path: none;
  padding: calc(574 * var(--u)) calc(130 * var(--u)) calc(80 * var(--u))
    calc(1104 * var(--u));
}
.imprint .split-photo {
  left: 0;
  top: calc(-12 * var(--u));
  width: calc(1007 * var(--u));
  height: calc(100% + 12 * var(--u));
  overflow: hidden;
}
.imprint .split-photo img {
  min-height: 100%;
  object-fit: cover;
  object-position: top;
}
.imprint address {
  font-style: normal;
  margin-top: calc(51 * var(--u));
}
.contact-details {
  display: flex;
  flex-direction: column;
  margin-top: calc(65 * var(--u));
}
.contact-details a {
  text-decoration: none;
  width: fit-content;
}
.contact-details a:hover {
  text-decoration: underline;
}
.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.1em;
  margin-top: calc(45 * var(--u));
  font-size: clamp(16px, calc(32 * var(--u)), 32px);
  font-weight: 300;
}
.legal-links {
  display: flex;
  flex-direction: column;
  gap: 0.7em;
  margin-top: calc(60 * var(--u));
  font-size: clamp(14px, calc(27 * var(--u)), 27px);
  font-weight: 300;
}
.legal-links a {
  width: fit-content;
}
html:not(.js-menu) .navigation {
  display: none;
}
html:not(.js-menu) .navigation:target {
  display: flex;
}
@media (width < 900px) {
  h1[id],
  h2[id] {
    scroll-margin-top: clamp(90px, 25vw, 220px);
  }
  .section-copy h2 {
    font-size: calc(117 * var(--u));
    line-height: 1.08;
  }
  .section-copy p,
  .plain-list,
  address,
  .contact-details {
    font-size: clamp(18px, calc(60 * var(--u)), 32px);
    line-height: 1.67;
  }
  .split {
    clip-path: none;
  }
  .split .split-photo {
    position: relative;
    inset: auto;
    width: 100%;
  }
  .split .split-photo,
  .split:not(.imprint) .section-copy {
    -webkit-mask-image: linear-gradient(#000, #000), var(--curve);
    mask-image: linear-gradient(#000, #000), var(--curve);
    -webkit-mask-size:
      100% calc(100% - var(--tip) + 1px),
      100% var(--tip);
    mask-size:
      100% calc(100% - var(--tip) + 1px),
      100% var(--tip);
    -webkit-mask-position: top, bottom;
    mask-position: top, bottom;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
  }
  .split .section-copy {
    position: relative;
    padding-inline: calc(84 * var(--u));
  }
  .activities {
    margin-top: calc(-212 * var(--u));
    min-height: 0;
    padding: 0;
    background: transparent;
    overflow: visible;
  }
  .activities .split-photo {
    height: calc(1194 * var(--u));
    z-index: 2;
    overflow: hidden;
  }
  .activities .split-photo img {
    width: 100%;
  }
  .activities .section-copy {
    z-index: 1;
    margin-top: calc(-273 * var(--u));
    min-height: calc(1495 * var(--u));
    padding-top: calc(430 * var(--u));
    padding-bottom: calc(347 * var(--u));
    background: var(--navy);
    clip-path: none;
  }
  .activities .plain-list {
    margin-top: calc(81 * var(--u));
    max-width: calc(720 * var(--u));
  }
  .activities .plain-list li:nth-child(3) {
    max-width: calc(630 * var(--u));
  }
  .merits {
    margin-top: calc(-210 * var(--u));
    min-height: calc(1480 * var(--u));
    padding: calc(426 * var(--u)) calc(82 * var(--u)) calc(350 * var(--u));
  }
  .merits .section-copy {
    width: auto;
  }
  .merits h2 {
    text-align: center;
  }
  .merits .plain-list {
    margin-top: calc(70 * var(--u));
    line-height: 1.5;
  }
  .merits .plain-list li + li {
    margin-top: 0.55em;
  }
  .iitr {
    margin-top: calc(-210 * var(--u));
    min-height: 0;
    padding: 0;
    background: transparent;
    overflow: visible;
  }
  .iitr .section-copy {
    background: var(--bronze);
    z-index: 2;
    min-height: calc(1225 * var(--u));
    padding: calc(423 * var(--u)) calc(91 * var(--u)) calc(328 * var(--u));
    clip-path: none;
  }
  .iitr .brand-title {
    width: calc(878 * var(--u));
    max-width: 100%;
  }
  .iitr p {
    margin-top: calc(147 * var(--u));
  }
  .iitr .split-photo {
    z-index: 1;
    margin-top: calc(-212 * var(--u));
    height: calc(1292 * var(--u));
    clip-path: none;
    overflow: hidden;
  }
  .iitr .split-photo img {
    height: 100%;
    object-fit: cover;
    object-position: 30% center;
  }
  .mingasoft {
    margin-top: calc(-210 * var(--u));
    min-height: 0;
    padding: 0;
    background: transparent;
    overflow: visible;
  }
  .mingasoft .section-copy {
    background: var(--bronze);
    z-index: 2;
    min-height: calc(1334 * var(--u));
    padding: calc(535 * var(--u)) calc(82 * var(--u)) calc(364 * var(--u));
    clip-path: none;
  }
  .mingasoft .brand-title {
    width: calc(923 * var(--u));
    max-width: 100%;
  }
  .mingasoft p {
    margin-top: calc(105 * var(--u));
  }
  .mingasoft .split-photo {
    margin-top: calc(-212 * var(--u));
    height: calc(1342 * var(--u));
    overflow: hidden;
    clip-path: none;
  }
  .mingasoft .split-photo img {
    position: absolute;
    top: calc(-80 * var(--u));
    width: 100%;
  }
  .contact {
    margin-top: calc(-210 * var(--u));
    min-height: calc(1670 * var(--u));
    padding: calc(400 * var(--u)) calc(74 * var(--u)) calc(151 * var(--u));
  }
  .contact .section-copy {
    max-width: none;
    text-align: left;
  }
  .contact .section-copy h2 {
    font-size: calc(86 * var(--u));
    line-height: 1.24;
    letter-spacing: -0.05em;
  }
  .contact-desktop {
    display: none;
  }
  .contact-mobile {
    display: block;
  }
  .contact-link {
    width: calc(369 * var(--u));
    margin-top: calc(109 * var(--u));
  }
  .imprint {
    margin-top: calc(-210 * var(--u));
    min-height: 0;
    padding: 0;
    background: var(--navy);
  }
  .imprint .split-photo {
    height: calc(1342 * var(--u));
    overflow: hidden;
    clip-path: none;
  }
  .imprint .split-photo img {
    position: absolute;
    top: calc(-448 * var(--u));
    min-height: 0;
    width: 100%;
    height: auto;
  }
  .imprint .section-copy {
    padding: calc(298 * var(--u)) calc(100 * var(--u)) calc(140 * var(--u));
  }
  .imprint address {
    margin-top: calc(42 * var(--u));
  }
  .contact-details {
    margin-top: calc(130 * var(--u));
  }
  .social-links {
    margin-top: calc(80 * var(--u));
    font-size: clamp(16px, calc(44 * var(--u)), 32px);
  }
  .legal-links {
    margin-top: calc(90 * var(--u));
    font-size: clamp(14px, calc(36 * var(--u)), 25px);
  }
}
@media print {
  .site-header,
  .skip-link {
    display: none;
  }
  .stage,
  .split .section-copy,
  .split .split-photo {
    clip-path: none !important;
  }
  .stage,
  .split .section-copy,
  .split .split-photo {
    margin-top: 0 !important;
  }
  .stage {
    break-inside: avoid;
  }
  .photo {
    filter: grayscale(1) !important;
  }
  .page {
    max-width: none;
  }
  a {
    text-decoration: none;
  }
}
/* Legal review pages are deliberately marked as drafts until the operator and
   hosting details are confirmed. They make no claim to a legal sign-off. */
.legal-page {
  background: var(--light);
  color: var(--navy);
}
.legal-header,
.legal-footer {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1.5rem clamp(1.25rem, 6vw, 6rem);
  font-size: 1rem;
}
.legal-header {
  border-bottom: 1px solid #10296226;
}
.legal-header > a:first-child {
  font-weight: 700;
  text-decoration: none;
}
.legal-content {
  max-width: 56rem;
  margin: clamp(3rem, 8vw, 7rem) auto;
  padding-inline: clamp(1.25rem, 5vw, 3rem);
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.7;
}
.legal-content h1 {
  font-size: clamp(2.25rem, 7vw, 4.2rem);
  overflow-wrap: anywhere;
}
.eyebrow {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.draft-note {
  border-left: 4px solid var(--bronze);
  background: #fff;
  padding: 1.25rem 1.5rem;
  margin: 2.5rem 0;
  font-size: 1rem;
}
.draft-note strong {
  display: block;
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.legal-content section {
  margin-top: 2.5rem;
}
.legal-content h2 {
  font-size: clamp(1.25rem, 3vw, 1.6rem);
  letter-spacing: -0.035em;
  line-height: 1.3;
  margin-bottom: 0.8rem;
}
.legal-content p + p {
  margin-top: 1rem;
}
.legal-content address {
  font-size: inherit;
  font-style: normal;
  line-height: inherit;
  font-weight: 300;
  margin-block: 1rem;
}
.legal-footer {
  justify-content: center;
  background: var(--navy);
  color: var(--light);
  padding-block: 2rem;
}
.legal-page a {
  overflow-wrap: anywhere;
}

/* Compensate for Montserrat's wider capitals to retain the source widths. */
.activities .section-copy h2 {
  font-size: calc(86.7 * var(--u));
}
.merits .section-copy h2 {
  font-size: calc(93.4 * var(--u));
}
@media (width < 900px) {
  .activities .section-copy h2 {
    font-size: calc(104.2 * var(--u));
  }
  .merits .section-copy h2 {
    font-size: calc(112.4 * var(--u));
  }
}

/* A quadratic Bézier at the tip is tangent to both diagonal edges. The solid
   upper mask and vector tip overlap by 1 px to avoid a rasterization seam. */
.imprint {
  -webkit-mask: none;
  mask: none;
}
.site-header {
  --menu-width: clamp(76px, 11.09375vw, 213px);
}
.menu-toggle {
  width: var(--menu-width);
  transition: width 0.24s ease;
}
.site-header.has-scrolled {
  --menu-width: clamp(56px, 5.5vw, 88px);
}
.js-menu .navigation {
  padding-top: calc(var(--menu-width) * 1.385 + 24px);
  max-height: calc(100dvh - 16px);
}
@media (width < 900px) {
  .site-header {
    --menu-width: clamp(62px, 17.037vw, 153px);
  }
  .site-header.has-scrolled {
    --menu-width: 56px;
  }
  .split {
    -webkit-mask: none;
    mask: none;
  }
  .activities {
    margin-top: calc(-218 * var(--u));
  }
  .activities .split-photo {
    background: linear-gradient(var(--bronze) 50%, var(--navy) 50%);
    clip-path: none;
  }
  .activities .split-photo img {
    transform: scale(1.025);
    transform-origin: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .menu-toggle {
    transition: none;
  }
}
@media print, (forced-colors: active) {
  .stage,
  .split .section-copy,
  .split .split-photo {
    -webkit-mask: none !important;
    mask: none !important;
  }
}

/* Keep the visible image boundary on the same 50% axis as every curved tip.
   PSD layers contain transparent margins; clip those inside half-width frames
   while retaining each photograph's original scale. */
@media (min-width: 900px) {
  .activities .split-photo,
  .mingasoft .split-photo,
  .imprint .split-photo {
    width: 50%;
    overflow: hidden;
  }
  .activities .split-photo,
  .mingasoft .split-photo {
    height: calc(100% + 9 * var(--u));
  }
  .activities .split-photo img {
    width: calc(1007 * var(--u));
  }
  .mingasoft .split-photo img {
    width: calc(1166 * var(--u));
  }
  .iitr .split-photo {
    left: 50%;
    width: 50%;
    height: calc(100% + 126 * var(--u));
    overflow: hidden;
  }
  .iitr .split-photo img {
    width: calc(1612 * var(--u));
  }
}

@media (min-width: 900px) {
  /* Each new ribbon starts exactly where the preceding curved cap starts. */
  .stage + .stage {
    margin-top: calc(-1 * var(--tip));
  }
}

/* Tablets retain the mobile sequence without magnifying copy and spacing
   into a second poster. Curve depth still follows the full canvas width. */
@media (600px <= width < 900px) {
  .profile p,
  .section-copy p,
  .plain-list,
  address,
  .contact-details {
    font-size: 32px;
  }
  .name-title {
    font-size: min(calc(107.2 * var(--u)), 64px);
  }
  .section-copy h2 {
    font-size: min(calc(117 * var(--u)), 64px);
  }
  .activities .section-copy h2 {
    font-size: min(calc(104.2 * var(--u)), 64px);
  }
  .merits .section-copy h2 {
    font-size: min(calc(112.4 * var(--u)), 64px);
  }
  .profile {
    min-height: 0;
    padding-top: calc(var(--tip) + 88px);
    padding-bottom: calc(var(--tip) + 88px);
  }
  .profile p {
    margin-top: 56px;
  }
  .activities .split-photo {
    height: min(calc(1194 * var(--u)), 840px);
  }
  .activities .section-copy {
    min-height: 0;
    padding-top: calc(273 * var(--u) + 88px);
    padding-bottom: calc(var(--tip) + 80px);
  }
  .activities .plain-list,
  .merits .plain-list {
    margin-top: 56px;
  }
  .merits {
    min-height: 0;
    padding-top: calc(var(--tip) + 88px);
    padding-bottom: calc(var(--tip) + 88px);
  }
  .iitr .section-copy {
    min-height: 0;
    padding-top: calc(var(--tip) + 88px);
    padding-bottom: calc(var(--tip) + 72px);
  }
  .iitr p,
  .mingasoft p {
    margin-top: 64px;
  }
  .mingasoft .section-copy {
    min-height: 0;
    padding-top: calc(var(--tip) + 112px);
    padding-bottom: calc(var(--tip) + 88px);
  }
  .iitr .split-photo,
  .mingasoft .split-photo,
  .imprint .split-photo {
    height: min(calc(1342 * var(--u)), 840px);
  }
  .contact {
    min-height: 0;
    padding-top: calc(var(--tip) + 88px);
  }
  .contact .section-copy h2 {
    font-size: min(calc(86 * var(--u)), 52px);
  }
  .contact-link {
    width: 180px;
    margin-top: 64px;
  }
  .imprint .section-copy {
    padding-top: 112px;
    padding-bottom: 80px;
  }
  .contact-details {
    margin-top: 64px;
  }
  .social-links,
  .legal-links {
    margin-top: 40px;
  }
}

@media (width < 900px) {
  .contact-details a,
  .social-links a,
  .legal-links a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }
  .legal-links {
    gap: 0.2em;
  }
}
html:not(.js-menu) .navigation {
  max-height: calc(100dvh - 64px);
}

/* Short landscape screens use the supplied desktop portrait composition.
   The content below retains the mobile PSD's single-column reading order. */
@media (500px <= width < 900px) and (height <= 600px) {
  .hero {
    height: calc(1135 * var(--canvas-width) / 1920);
  }
  .hero-title {
    width: calc(920 * var(--canvas-width) / 1920);
    margin-left: calc(127 * var(--canvas-width) / 1920);
    padding-top: calc(100 * var(--canvas-width) / 1920);
    font-size: calc(86 * var(--canvas-width) / 1920);
    line-height: 0.99;
  }
  .site-header {
    right: 3.75vw;
    --menu-width: clamp(62px, 11.09375vw, 100px);
  }
}

/* r22: clean color originals replace pre-masked PSD photo layers. */
.activities .split-photo img,
.mingasoft .split-photo img,
.imprint .split-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  transform: none;
}

/* Client refinement r23: a quiet outer frame, tied to the actual canvas. */
:root {
  --frame: 24px;
  --canvas-width: calc(100vw - var(--frame) * 2);
}
body:not(.legal-page) { padding: var(--frame); }
.site-header {
  top: max(0px, calc(var(--frame) - var(--header-scroll, 0px)));
  right: max(calc(var(--frame) + var(--canvas-width) * .0375), calc((100vw - 1920px) / 2 + 72px));
}
@media (width < 900px) {
  :root { --frame: 16px; }
  .site-header { right: calc(var(--frame) + var(--canvas-width) * .08148); }
}
@media (width < 600px) { :root { --frame: 8px; } }
.hero-title { line-height: 1.12; }
.name-title { letter-spacing: 0; }
.legal-content h1 { text-transform: none; letter-spacing: 0; }
.legal-content h2 { text-transform: none; letter-spacing: 0; }
.legal-content h3 { font-size: 1.15rem; font-weight: 600; line-height: 1.4; margin: 1.75rem 0 .75rem; }
.legal-content p { overflow-wrap: anywhere; }
.company-link { text-decoration-thickness: 1px; text-underline-offset: .15em; }
.legal-content h1 { margin-bottom: 2rem; }
.legal-source > p:nth-child(-n+5) { margin-bottom: 0; }
.legal-source > h2 { margin-top: 3rem; margin-bottom: 1.25rem; }
.legal-source > h3 { overflow-wrap: anywhere; }

/* r24: more headline weight, with breathing room around the portrait. */
.page h1, .page h2 { font-weight: 800; }

/* r25: one shared headline size throughout the onepager. */
.page { --headline-size: calc(86 * var(--u)); }
.page h1, .page h2:not(.brand-title) { font-size: var(--headline-size); letter-spacing: 0; }
@media (width >= 900px) { .contact .section-copy { max-width: none; } }
@media (width < 900px) { .page { --headline-size: calc(72 * var(--u)); } }
@media (500px <= width < 900px) and (height <= 600px) {
  .page { --headline-size: calc(86 * var(--canvas-width) / 1920); }
}
/* r27: the closed flag shares the open panel's glass surface. */
.js-menu .menu-toggle[aria-expanded="false"] {
  filter: drop-shadow(0 18px 24px #00000059) drop-shadow(0 3px 6px #00000038);
}
.js-menu .menu-toggle::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--navy);
  -webkit-mask: url("shapes/menu-flag.svg") center / 100% 100% no-repeat;
  mask: url("shapes/menu-flag.svg") center / 100% 100% no-repeat;
}
.js-menu .menu-toggle[aria-expanded="true"]::before { display: none; }
.js-menu .menu-flag { position: relative; filter: url("#menu-white-mark"); }
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .js-menu .menu-toggle::before {
    background: rgb(16 41 98 / 92%);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
  }
}
.menu-lines span { position: absolute; left: 0; width: 100%; }
.menu-lines span:first-child { top: 0; }
.menu-lines span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.menu-lines span:last-child { top: 100%; transform: translateY(-100%); }
.menu-toggle[aria-expanded="true"] .menu-lines span:first-child {
  top: 50%; transform: translateY(-50%) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] .menu-lines span:last-child {
  top: 50%; transform: translateY(-50%) rotate(-45deg);
}
@media (width < 600px) {
  .js-menu .navigation {
    position: fixed;
    top: max(0px, calc(var(--frame) - var(--header-scroll, 0px)));
    left: 16px;
    right: 16px;
    min-width: 0;
    width: auto;
    max-height: calc(100dvh - 32px);
  }
}

/* r29: revised customer copy and legal contact blocks. */
.navigation-legal + .navigation-legal { border-top: 0; margin-top: 0; padding-top: .35rem; }
.legal-source > p:nth-child(-n+5) { margin-bottom: 1rem; }
.legal-address { line-height: 1.55; }
.legal-source ul { padding-left: 1.3em; margin: 1rem 0 1.5rem; line-height: 1.7; }
.contact #anfragen { max-width: 20ch; margin-inline: auto; text-align: center; }
@media (width < 900px) { .contact #anfragen { max-width: 22ch; margin-inline: 0; text-align: left; } }

/* r30: compact language choice, shared by both language editions. */
.language-switch { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; }
.language-switch a, .language-switch span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .25rem .65rem; font-size: 16px; font-weight: 500; line-height: 1; text-decoration: none; border: 1px solid transparent; border-radius: 3px; }
.language-switch [aria-current] { border-color: currentColor; }
.language-switch a:hover { background: #ffffff18; }
.legal-header { flex-wrap: wrap; gap: 1rem; }
.legal-header .language-switch { margin-top: 0; }
html[lang="en"] .imprint address { overflow-wrap: anywhere; }

/* r31: give the opening word more presence in both languages. */
.page .hero-title { font-size: calc(var(--headline-size) * 1.32); }

/* r33: preserve the editorial appearance of the channel credit. */
.quiet-link { color: inherit; text-decoration: none; }
.quiet-link:hover, .quiet-link:focus-visible { color: var(--bronze); text-decoration: underline; text-underline-offset: .18em; }
