/* 32 — PPT-faithful brand-color composition with reference-led motion rhythm. */
:root {
  --motion-composed-fast: 260ms;
  --motion-composed-medium: 680ms;
  --motion-composed-slow: 1480ms;
  --motion-composed-ease: cubic-bezier(.22, 1, .36, 1);
  --motion-composed-snap: cubic-bezier(.16, 1, .3, 1);
}

#p32.p32-color-motion {
  --p32-surface: rgb(242 242 242);
  --p32-canvas-ratio: 16 / 9;
  --p32-title-x: 2.364583%;
  --p32-title-y: 3.314815%;
  --p32-title-w: 32.666667%;
  --p32-title-h: 6.712963%;
  --p32-panel-blue-x: 4.510417%;
  --p32-panel-blue-y: 10.435185%;
  --p32-panel-blue-w: 40.838542%;
  --p32-panel-blue-h: 51.138889%;
  --p32-panel-blue-ramp-x: 45.348958%;
  --p32-panel-blue-ramp-y: 10.435185%;
  --p32-panel-blue-ramp-w: 21.375%;
  --p32-panel-blue-ramp-h: 51.138889%;
  --p32-panel-white-x: 66.723958%;
  --p32-panel-white-y: 10.435185%;
  --p32-panel-white-w: 28.770833%;
  --p32-panel-white-h: 51.138889%;
  --p32-panel-ocean-x: 4.510417%;
  --p32-panel-ocean-y: 61.574074%;
  --p32-panel-ocean-w: 28.651042%;
  --p32-panel-ocean-h: 35.814815%;
  --p32-panel-ocean-ramp-x: 33.166667%;
  --p32-panel-ocean-ramp-y: 61.564815%;
  --p32-panel-ocean-ramp-w: 12.182292%;
  --p32-panel-ocean-ramp-h: 35.833333%;
  --p32-panel-deep-x: 45.348958%;
  --p32-panel-deep-y: 61.574074%;
  --p32-panel-deep-w: 14.03125%;
  --p32-panel-deep-h: 35.814815%;
  --p32-panel-deep-ramp-x: 59.380208%;
  --p32-panel-deep-ramp-y: 61.555556%;
  --p32-panel-deep-ramp-w: 7.359375%;
  --p32-panel-deep-ramp-h: 35.842593%;
  --p32-panel-black-x: 66.723958%;
  --p32-panel-black-y: 61.555556%;
  --p32-panel-black-w: 28.770833%;
  --p32-panel-black-h: 35.833333%;
  position: relative;
  min-height: 100svh;
  height: 100svh;
  padding: 0 !important;
  overflow: hidden;
  isolation: isolate;
  background: var(--p32-surface) !important;
}

.p32-color__canvas {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(100%, calc(100svh * 16 / 9));
  height: auto;
  max-height: 100svh;
  aspect-ratio: var(--p32-canvas-ratio);
  transform: translate(-50%, -50%);
  overflow: hidden;
  background: var(--p32-surface);
  contain: layout paint;
}

.p32-color__title {
  position: absolute;
  z-index: 3;
  left: var(--p32-title-x);
  top: var(--p32-title-y);
  width: var(--p32-title-w);
  height: var(--p32-title-h);
  display: block;
  object-fit: fill;
  opacity: 0;
  will-change: opacity, transform, filter;
}

.p32-color__mosaic {
  position: absolute;
  z-index: 2;
  inset: 0;
  transform-origin: var(--p32-panel-blue-x) var(--p32-panel-blue-y);
  will-change: transform;
}

.p32-color__panel {
  position: absolute;
  left: var(--p32-panel-x);
  top: var(--p32-panel-y);
  width: var(--p32-panel-w);
  height: var(--p32-panel-h);
  margin: 0;
  overflow: hidden;
  opacity: 0;
  transform-origin: left center;
  backface-visibility: hidden;
  will-change: opacity, transform, filter;
}

.p32-color__panel img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  user-select: none;
  -webkit-user-drag: none;
}

.p32-color__panel--blue {
  --p32-panel-x: var(--p32-panel-blue-x);
  --p32-panel-y: var(--p32-panel-blue-y);
  --p32-panel-w: var(--p32-panel-blue-w);
  --p32-panel-h: var(--p32-panel-blue-h);
  z-index: 9;
  transform-origin: center;
}

.p32-color__panel--blue-ramp {
  --p32-panel-x: var(--p32-panel-blue-ramp-x);
  --p32-panel-y: var(--p32-panel-blue-ramp-y);
  --p32-panel-w: var(--p32-panel-blue-ramp-w);
  --p32-panel-h: var(--p32-panel-blue-ramp-h);
}

.p32-color__panel--white {
  --p32-panel-x: var(--p32-panel-white-x);
  --p32-panel-y: var(--p32-panel-white-y);
  --p32-panel-w: var(--p32-panel-white-w);
  --p32-panel-h: var(--p32-panel-white-h);
}

.p32-color__panel--ocean {
  --p32-panel-x: var(--p32-panel-ocean-x);
  --p32-panel-y: var(--p32-panel-ocean-y);
  --p32-panel-w: var(--p32-panel-ocean-w);
  --p32-panel-h: var(--p32-panel-ocean-h);
}

.p32-color__panel--ocean-ramp {
  --p32-panel-x: var(--p32-panel-ocean-ramp-x);
  --p32-panel-y: var(--p32-panel-ocean-ramp-y);
  --p32-panel-w: var(--p32-panel-ocean-ramp-w);
  --p32-panel-h: var(--p32-panel-ocean-ramp-h);
}

.p32-color__panel--deep {
  --p32-panel-x: var(--p32-panel-deep-x);
  --p32-panel-y: var(--p32-panel-deep-y);
  --p32-panel-w: var(--p32-panel-deep-w);
  --p32-panel-h: var(--p32-panel-deep-h);
}

.p32-color__panel--deep-ramp {
  --p32-panel-x: var(--p32-panel-deep-ramp-x);
  --p32-panel-y: var(--p32-panel-deep-ramp-y);
  --p32-panel-w: var(--p32-panel-deep-ramp-w);
  --p32-panel-h: var(--p32-panel-deep-ramp-h);
}

.p32-color__panel--black {
  --p32-panel-x: var(--p32-panel-black-x);
  --p32-panel-y: var(--p32-panel-black-y);
  --p32-panel-w: var(--p32-panel-black-w);
  --p32-panel-h: var(--p32-panel-black-h);
}

.p32-color__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 700px) {
  #p32.p32-color-motion {
    height: auto;
    min-height: 100svh;
    padding: 72px 18px 64px !important;
    overflow: hidden;
  }

  .p32-color__canvas {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    transform: none;
    overflow: visible;
    contain: paint;
  }

  .p32-color__title {
    position: relative;
    left: auto;
    top: auto;
    width: min(100%, 520px);
    height: auto;
    aspect-ratio: 1568 / 181;
    margin: 0 0 24px;
  }

  .p32-color__mosaic {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    transform-origin: center top;
  }

  .p32-color__panel {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: clamp(210px, 62vw, 300px);
  }

  .p32-color__panel--blue,
  .p32-color__panel--ocean {
    grid-column: 1 / -1;
    height: auto;
  }

  .p32-color__panel--blue { aspect-ratio: 1961 / 1380; }
  .p32-color__panel--ocean { aspect-ratio: 1376 / 968; }
}

@media (prefers-reduced-motion: reduce) {
  .p32-color__title,
  .p32-color__panel {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  .p32-color__mosaic {
    transform: none !important;
    animation: none !important;
  }
}
