.company-profile {
  --profile-ink: #171717;
  --profile-ground: #fff;
  --profile-soft: #f1f1f1;
  --profile-blue: #0050a4;
  color: var(--profile-ink);
}

.profile-banner { margin: 0; }
.profile-banner img { display: block; width: 100%; height: auto; }
.company-profile .profile-light-inner,
.company-profile .profile-catalog,
.company-profile .profile-related { max-width: 1200px; }
.company-profile .profile-light { position: relative; isolation: isolate; overflow: hidden; margin: 0 0 64px; padding: 0; color: #fff; background: #080808; }
.profile-light-inner { position: relative; z-index: 1; padding-block: 72px 80px; }
.profile-light-content { width: 62%; }
body #main .company-profile .profile-light h1 { margin: 0 0 28px; max-width: none; color: #fff; font-size: clamp(32px, 3.4vw, 48px); font-weight: 400; letter-spacing: -.025em; line-height: 1.12; text-wrap: balance; }
.company-profile .profile-intro-copy { display: block; }
body #main .company-profile .profile-intro-copy p { max-width: none; margin: 0 0 20px; color: #e2e2e2; font-size: 16px; font-weight: 300; line-height: 1.7; }
body #main .company-profile .profile-intro-copy p:last-child { margin-bottom: 0; }
/* The source's light has a hard left origin and feathered rays to the right.
   Only transform and opacity animate; the SVG blur itself stays static. */
.profile-light-art { position: absolute; z-index: 0; inset: 0 auto 0 68%; width: 45%; pointer-events: none; }
.profile-light-field { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.profile-light-line { position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: #fff; transform-origin: center; }
.profile-light.is-motion-ready:not(.is-playing) .profile-light-art { transform: translateX(9vw); }
.profile-light.is-motion-ready:not(.is-playing) .profile-light-line { opacity: 0; transform: scaleY(.65); }
.profile-light.is-motion-ready:not(.is-playing) .profile-light-field,
.profile-light.is-motion-ready:not(.is-playing) .profile-light-content { opacity: 0; }
.profile-light.is-playing .profile-light-line { animation: profile-line-on 600ms ease-out both; }
.profile-light.is-playing .profile-light-field { animation: profile-field-on 1300ms 550ms ease-out both; }
.profile-light.is-playing .profile-light-art { animation: profile-light-shift 1250ms 1500ms cubic-bezier(.22,.61,.36,1) both; }
.profile-light.is-playing .profile-light-content { animation: profile-copy-on 1000ms 1750ms ease-out both; }
@keyframes profile-line-on { from { opacity: 0; transform: scaleY(.65); } to { opacity: 1; transform: scaleY(1); } }
@keyframes profile-field-on { from { opacity: 0; transform: scaleX(.88); transform-origin: left; } to { opacity: 1; transform: scaleX(1); transform-origin: left; } }
@keyframes profile-light-shift { from { transform: translateX(9vw); } to { transform: translateX(0); } }
@keyframes profile-copy-on { from { opacity: 0; } to { opacity: 1; } }

.company-profile .profile-catalog { max-width: 1200px; padding-block: 0 80px; }
.company-profile h2 { margin: 0 0 28px; font-size: clamp(26px, 3vw, 36px); font-weight: 450; line-height: 1.2; }
.profile-book { max-width: 1200px; margin-inline: auto; }
.profile-book:focus-visible,
.company-profile button:focus-visible,
.company-profile a:focus-visible,
.company-profile select:focus-visible { outline: 2px solid var(--profile-blue); outline-offset: 4px; }

.book-toolbar { display: none !important; }
.book-toolbar[hidden], .book-help[hidden], .book-page[hidden] { display: none !important; }
.book-pagination, .book-options { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.book-status { min-width: 110px; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.company-profile button, .company-profile select { min-height: 44px; padding: 10px 16px; border: 0; border-radius: 8px; background: var(--profile-soft); color: var(--profile-ink); font: inherit; font-size: 14px; cursor: pointer; }
.company-profile button:hover { background: var(--profile-blue); color: #fff; }
.company-profile button:disabled { opacity: .4; cursor: default; background: var(--profile-soft); color: var(--profile-ink); }
.company-profile select { max-width: 210px; padding-right: 28px; }
.book-toolbar .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* The stage has the proportions of two A4 pages. Each supplied artwork stays
   pixel-for-pixel in that page box; the narrow seam is the only decoration. */
.book-stage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d7d7d7; padding: 0; }
.book-page { position: relative; min-width: 0; overflow: hidden; aspect-ratio: 2480 / 3508; background: var(--profile-ground); cursor: e-resize; }
.book-page img { display: block; width: 100%; height: 100%; object-fit: contain; }
.book-help { display: none !important; }

.book-open { position: absolute; z-index: 8; top: 50%; left: 50%; display: grid; place-items: center; width: 50px; height: 50px; min-height: 50px; box-sizing: border-box; padding: 0; border: 0; border-radius: 3px !important; transform: translate(-50%, -50%); background: #000 !important; color: #fff !important; opacity: .6; font-family: Arial, sans-serif !important; font-size: 33px !important; font-weight: 700 !important; line-height: 50px; cursor: zoom-in; }
.book-open:hover { background: #000 !important; border-color: transparent; opacity: .8; }
.book-open:focus-visible { outline-color: #fff; }

.profile-book.is-enhanced .book-stage { position: relative; display: block; aspect-ratio: 4960 / 3508; isolation: isolate; perspective: 1800px; }
.profile-book.is-enhanced .book-page { position: absolute; inset-block: 0; left: 0; width: 50%; height: 100%; }
.profile-book.is-enhanced .book-page.is-right { left: 50%; }
.profile-book.is-enhanced .book-page:not(.is-right) { cursor: e-resize; }
.book-turn { z-index: 4; pointer-events: none; backface-visibility: hidden; transform-style: preserve-3d; }
.book-turn.book-turn-right { left: 50% !important; transform-origin: left center; }
.book-turn.book-turn-left { left: 0 !important; transform-origin: right center; }

.book-dialog { margin: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; padding: 0; border: 0; border-radius: 0; color: var(--profile-ink); background: #f5f5f5; overflow: hidden; }
.book-dialog::backdrop { background: #f5f5f5; }
.book-dialog-header { position: fixed; top: 20px; right: 20px; z-index: 12; display: flex; align-items: center; justify-content: flex-end; }
.book-dialog-header span { display: none; }
.book-dialog-header button { width: 42px; min-height: 42px; padding: 0; border-radius: 50%; background: #5a5a5a; color: #fff; font-size: 28px; line-height: 1; }
.book-dialog .profile-book { width: 100vw; height: 100dvh; max-width: none; margin: 0; }
.book-dialog .book-stage { width: 100%; height: 100%; max-height: none; aspect-ratio: auto; background: transparent; }
.book-dialog .book-open { display: none !important; }
.book-dialog .book-page { cursor: pointer; }
.book-dialog-arrow { position: fixed; z-index: 11; top: 0; width: 50px; height: 100dvh; min-height: 0; padding: 0; border: 0; border-radius: 0 !important; transform: none; background: rgb(45 45 45 / .78) !important; color: #fff !important; font-size: 0 !important; }
.book-dialog-arrow-left { left: 0; }
.book-dialog-arrow-right { right: 0; }
.book-dialog-arrow span { position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-block: 16px solid transparent; transform: translate(-50%, -50%); }
.book-dialog-arrow-left span { border-right: 18px solid #fff; }
.book-dialog-arrow-right span { border-left: 18px solid #fff; }
.book-dialog-arrow:hover { background: rgb(45 45 45 / .92) !important; }
.book-dialog-arrow:disabled { display: none; }

.company-profile .profile-related { padding-block: 20px 80px; }
.profile-related > div { display: flex; flex-wrap: wrap; gap: 24px 40px; }
.profile-related a { padding-block: 12px; color: var(--profile-blue); font-size: 18px; }

@keyframes profile-rise-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
.company-profile .profile-catalog { animation: profile-rise-in 620ms 120ms cubic-bezier(.22,.61,.36,1) both; }
.company-profile .profile-related { animation: profile-rise-in 620ms 180ms cubic-bezier(.22,.61,.36,1) both; }

@media (max-width: 999px) {
  .profile-book.is-enhanced .book-stage { aspect-ratio: auto; background: transparent; }
  .profile-book.is-enhanced .book-page { position: relative; inset: auto; display: none; width: 100%; height: auto; aspect-ratio: 2480 / 3508; background: var(--profile-ground); }
  .profile-book.is-enhanced .book-page.is-current { display: block; }
  .profile-book.is-enhanced .book-page { cursor: e-resize; }
  .book-open { width: 50px; height: 50px; min-height: 50px; font-size: 33px !important; }
  .profile-book.is-enhanced .book-turn { position: absolute; width: 100%; }
  .book-dialog .profile-book { width: 100vw; max-width: none; }
  .book-options { flex: 1; }
  .book-dialog .book-toolbar { position: static; }
}

@media (max-width: 900px) {
  .profile-light-content { width: 68%; }
  .profile-light-art { left: 77%; width: 38%; }
  .profile-light-inner { padding-block: 56px 64px; }
}

@media (max-width: 600px) {
  .company-profile .profile-light { margin-bottom: 44px; }
  .profile-light-inner { padding-block: 40px 44px; }
  .profile-light-content { width: 100%; }
  body #main .company-profile .profile-light h1 { max-width: 76%; font-size: 30px; line-height: 1.15; }
  body #main .company-profile .profile-intro-copy p:first-child { max-width: 76%; }
  .profile-light-art { inset: 35px auto auto 82%; width: 36%; height: var(--profile-light-mobile-height, 120px); overflow: hidden; mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent); } /* taste-skill-ignore: feather the explicitly requested light effect; not a decorative background fill. */
  .profile-light-line { top: 15%; bottom: 15%; }
  .company-profile .profile-catalog { padding-bottom: 48px; }
  .book-toolbar { gap: 12px; }
  .book-pagination { width: 100%; justify-content: space-between; }
  .book-options { gap: 8px; }
  .book-options label { flex: 1; }
  .company-profile select { width: 100%; max-width: none; }
  .company-profile button, .company-profile select { padding: 10px 12px; font-size: 13px; }
  .book-help { text-align: left; }
  .book-dialog { margin: 0; width: 100vw; max-width: none; height: 100dvh; max-height: 100dvh; padding: 0; border-radius: 0; }
  .book-dialog .profile-book { width: 100vw; height: 100dvh; }
  .book-dialog-arrow { width: 28px; height: 100dvh; min-height: 0; }
  .book-dialog-arrow span { border-block-width: 12px; }
  .book-dialog-arrow-left span { border-right-width: 14px; }
  .book-dialog-arrow-right span { border-left-width: 14px; }
  .book-dialog-header { top: 12px; right: 12px; }
  .profile-related > div { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) { .book-turn { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  .company-profile .profile-intro, .company-profile .profile-catalog, .company-profile .profile-related { animation: none; }
  .profile-light .profile-light-art, .profile-light .profile-light-field, .profile-light .profile-light-line, .profile-light .profile-light-content { animation: none !important; opacity: 1 !important; transform: none !important; }
}

@media print {
  @page { size: A4 portrait; margin: 0; }
  body > *:not(main), main > *:not(.company-profile), .profile-banner, .profile-intro, .profile-catalog > h2, .profile-related, .book-toolbar, .book-help, .book-dialog-header, .book-turn { display: none !important; }
  body, main, .company-profile, .profile-catalog, .profile-book, .book-stage, .book-dialog { display: block !important; position: static !important; width: 210mm !important; max-width: none !important; max-height: none !important; height: auto !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; background: #fff !important; }
  .book-dialog:not([open]) { display: none !important; }
  .profile-book.is-enhanced .book-page, .book-page[hidden] { display: block !important; position: relative !important; inset: auto !important; width: 210mm !important; height: 297mm !important; min-height: 0 !important; box-sizing: border-box; break-after: page; page-break-after: always; }
  .book-page:last-child { break-after: auto; }
}
