:root {
  --jp-stage: #050505;
  --jp-paper-performance: #eee9df;
  --jp-chalk-performance: #fff9ee;
  --jp-panel-performance: #151313;
  --jp-muted-performance: #5a5650;
  --jp-signal-performance: #ff596e;
  --jp-signal-performance-light: #8c1839;
  --jp-performance-line: rgba(255, 249, 238, .24);
  --jp-performance-line-light: rgba(5, 5, 5, .24);
  --jp-performance-display: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
}

/* Keep browser chrome and overscroll aligned with the dark opening/closing scenes. */
html {
  background: var(--jp-stage);
}

body.elementor-page.jp-performance-site {
  color: var(--jp-stage);
  background: var(--jp-stage);
}

body.elementor-page.jp-performance-site ::selection {
  color: var(--jp-stage);
  background: var(--jp-signal-performance);
}

body.elementor-page.jp-performance-site :where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--jp-signal-performance-light) !important;
  outline-offset: 4px !important;
}

body.elementor-page.jp-performance-site .jp-skip-link {
  transition: none !important;
  border-radius: 0 !important;
}

body.elementor-page.jp-performance-site .jp-skip-link:focus,
body.elementor-page.jp-performance-site .jp-skip-link:focus-visible {
  color: var(--jp-stage) !important;
  background: var(--jp-signal-performance) !important;
  transform: none !important;
}

body.elementor-page.jp-performance-site :where(.jp-site-header, .jp-performance-hero, .jp-era-section, .jp-feature--dark, .jp-video-section--dark, .jp-contact, .jp-footer)
  :where(a, button, [tabindex]):focus-visible {
  outline-color: var(--jp-signal-performance) !important;
}

/* Opening credits navigation */
body.elementor-page.jp-performance-site .jp-site-header {
  min-height: 64px !important;
  color: var(--jp-chalk-performance);
  background: transparent !important;
  border-bottom: 0;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  transition: color .25s ease;
}

body.elementor-page.jp-performance-site .jp-site-header > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  min-height: 64px !important;
  padding-inline: var(--jp-gutter) !important;
}

body.elementor-page.jp-performance-site .jp-brand .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-brand a {
  color: var(--jp-chalk-performance) !important;
  font-family: var(--jp-text) !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-nav .elementor-item {
  color: rgba(255, 249, 238, .72) !important;
  font-family: var(--jp-mono) !important;
  font-size: .75rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-nav .elementor-item:hover,
body.elementor-page.jp-performance-site .jp-nav .elementor-item.elementor-item-active {
  color: var(--jp-signal-performance) !important;
}

body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--main .elementor-item::after {
  background: var(--jp-signal-performance) !important;
}

body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--dropdown {
  color: var(--jp-chalk-performance);
  background: rgba(5, 5, 5, .98) !important;
}

body.elementor-page.jp-performance-site .jp-site-header.jp-header--light .jp-brand :is(.elementor-heading-title, a),
body.elementor-page.jp-performance-site .jp-site-header.jp-header--light .jp-nav .elementor-nav-menu--main .elementor-item,
body.elementor-page.jp-performance-site .jp-site-header.jp-header--light .jp-nav .elementor-menu-toggle {
  color: var(--jp-stage) !important;
}

body.elementor-page.jp-performance-site.jp-menu-open .jp-site-header .jp-brand :is(.elementor-heading-title, a),
body.elementor-page.jp-performance-site.jp-menu-open .jp-site-header .jp-nav .elementor-menu-toggle {
  color: var(--jp-chalk-performance) !important;
}

/* Full-height opening stage */
body.elementor-page.jp-performance-site .jp-performance-hero {
  position: relative !important;
  min-height: 100svh !important;
  overflow: clip !important;
  color: var(--jp-chalk-performance);
  background: var(--jp-stage) !important;
  border-bottom: 0;
}

body.elementor-page.jp-performance-site .jp-performance-hero > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-template-rows: minmax(0, 1fr) auto !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 100svh !important;
  margin: 0 !important;
  padding: clamp(7rem, 13vh, 10rem) var(--jp-gutter) clamp(2rem, 5vh, 3.5rem) !important;
  gap: clamp(1.25rem, 2.5vw, 2.5rem) !important;
  align-items: end !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-intro {
  z-index: 2;
  grid-column: 1 / span 6 !important;
  grid-row: 1 !important;
  align-self: end !important;
  padding-block: clamp(1rem, 4vh, 3rem) !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-intro > .e-con-inner {
  gap: clamp(1rem, 2vw, 1.6rem) !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-kicker .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-index .elementor-heading-title {
  color: var(--jp-signal-performance) !important;
  font-family: var(--jp-mono) !important;
  font-size: clamp(.75rem, .9vw, .82rem) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-display .elementor-heading-title {
  max-width: 9ch;
  color: var(--jp-chalk-performance) !important;
  font-family: var(--jp-performance-display) !important;
  font-size: clamp(5rem, 9vw, 9.5rem) !important;
  font-weight: 400 !important;
  line-height: .79 !important;
  letter-spacing: -.062em !important;
  text-wrap: balance;
}

body.elementor-page.jp-performance-site .jp-display .jp-signal {
  color: var(--jp-signal-performance);
  font-style: italic;
  font-weight: 400;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-lede,
body.elementor-page.jp-performance-site .jp-performance-hero .jp-lede p {
  max-width: 38rem;
  color: rgba(255, 249, 238, .76) !important;
  font-size: clamp(1rem, 1.4vw, 1.18rem) !important;
  line-height: 1.5 !important;
  letter-spacing: -.015em !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-index {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: none !important;
  padding-top: 1rem !important;
  border-top: 0;
}

body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-index .elementor-heading-title {
  display: flex;
  justify-content: space-between;
  color: rgba(255, 249, 238, .58) !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero--text-only .jp-hero-intro {
  grid-column: 1 / span 9 !important;
}

body.elementor-page.jp-performance-site .jp-performance-hero--text-only .jp-lede,
body.elementor-page.jp-performance-site .jp-performance-hero--text-only .jp-lede p {
  max-width: 46rem;
}

/* Native, fully visible hero collage */
body.elementor-page.jp-performance-site .jp-hero-media {
  z-index: 1;
  grid-column: 7 / -1 !important;
  grid-row: 1 !important;
  align-self: stretch !important;
  min-width: 0 !important;
  min-height: 34rem !important;
}

body.elementor-page.jp-performance-site .jp-hero-media > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(12, minmax(0, 1fr)) !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 34rem !important;
  padding: 0 !important;
  gap: clamp(.45rem, .8vw, .8rem) !important;
}

body.elementor-page.jp-performance-site .jp-hero-art {
  position: relative !important;
  display: grid !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  place-items: center;
  background: var(--jp-panel-performance) !important;
  border: 0;
}

body.elementor-page.jp-performance-site .jp-hero-art--1 {
  grid-column: 1 / span 8;
  grid-row: 3 / span 9;
}

body.elementor-page.jp-performance-site .jp-hero-art--2 {
  grid-column: 8 / -1;
  grid-row: 1 / span 6;
  background: var(--jp-paper-performance) !important;
}

body.elementor-page.jp-performance-site .jp-hero-art--3 {
  grid-column: 9 / -1;
  grid-row: 8 / -1;
}

body.elementor-page.jp-performance-site .jp-hero-media:has(.jp-hero-art:only-child) .jp-hero-art--1 {
  grid-column: 2 / -2;
  grid-row: 1 / -1;
}

body.elementor-page.jp-performance-site .jp-hero-media:has(.jp-hero-art:nth-child(2):last-child) .jp-hero-art--1 {
  grid-column: 1 / span 8;
  grid-row: 3 / -1;
}

body.elementor-page.jp-performance-site .jp-hero-media:has(.jp-hero-art:nth-child(2):last-child) .jp-hero-art--2 {
  grid-column: 8 / -1;
  grid-row: 1 / span 8;
}

body.elementor-page.jp-performance-site .jp-hero-art :is(.elementor-widget-container, a) {
  display: grid !important;
  width: 100% !important;
  height: 100% !important;
  padding: clamp(.35rem, .75vw, .75rem) !important;
  place-items: center;
}

body.elementor-page.jp-performance-site .jp-hero-art img {
  position: absolute !important;
  inset: clamp(.35rem, .75vw, .75rem) !important;
  display: block !important;
  width: calc(100% - clamp(.7rem, 1.5vw, 1.5rem)) !important;
  max-width: none !important;
  height: calc(100% - clamp(.7rem, 1.5vw, 1.5rem)) !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: scale-down !important;
  transition: filter .35s ease;
}

body.elementor-page.jp-performance-site .jp-hero-media:hover .jp-hero-art img,
body.elementor-page.jp-performance-site .jp-hero-media:focus-within .jp-hero-art img {
  filter: saturate(1.08) contrast(1.03);
  transform: none !important;
}

/* Home opens on one complete, full-height portrait. Keeping the tall source
   intact prevents desktop cover-cropping from reducing Javiel to only a face. */
body.elementor-page.jp-performance-site .jp-fullscreen-hero {
  min-height: 100svh !important;
  isolation: isolate;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: rgba(5, 5, 5, .42);
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero > .e-con-inner {
  position: static !important;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero .jp-hero-intro,
body.elementor-page.jp-performance-site .jp-fullscreen-hero .jp-hero-index {
  position: relative !important;
  z-index: 3;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero-media {
  position: absolute !important;
  z-index: 0;
  inset: 0 !important;
  grid-column: 1 / -1 !important;
  grid-row: 1 / -1 !important;
  width: 100% !important;
  height: 100svh !important;
  min-height: 100svh !important;
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero-media > .e-con-inner {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero-media .jp-hero-art {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  background: transparent !important;
  grid-column: auto !important;
  grid-row: auto !important;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero-media .jp-hero-art :is(.elementor-widget-container, a) {
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
}

body.elementor-page.jp-performance-site .jp-fullscreen-hero-media .jp-hero-art img {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: 100% 100%;
  filter: saturate(.88) contrast(1.04);
}

/* Editorial section grammar */
body.elementor-page.jp-performance-site .jp-section-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-feature-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-card-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-video-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-contact-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-exp-role .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-tool-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-index-title .elementor-heading-title {
  font-family: var(--jp-performance-display) !important;
  font-weight: 400 !important;
}

body.elementor-page.jp-performance-site .jp-section-title .elementor-heading-title {
  max-width: 12ch;
  font-size: clamp(3.8rem, 7.8vw, 8.5rem) !important;
  line-height: .86 !important;
  letter-spacing: -.052em !important;
}

body.elementor-page.jp-performance-site .jp-meta .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-card-index .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-card-role,
body.elementor-page.jp-performance-site .jp-card-role p,
body.elementor-page.jp-performance-site .jp-index-no .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-index-role,
body.elementor-page.jp-performance-site .jp-index-role p,
body.elementor-page.jp-performance-site .jp-exp-year .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-exp-company,
body.elementor-page.jp-performance-site .jp-exp-company p {
  font-family: var(--jp-mono) !important;
  letter-spacing: .055em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-copy,
body.elementor-page.jp-performance-site .jp-copy p {
  color: var(--jp-muted-performance) !important;
  line-height: 1.58 !important;
}

body.elementor-page.jp-performance-site .jp-era-section {
  color: var(--jp-chalk-performance);
  background: var(--jp-stage) !important;
}

body.elementor-page.jp-performance-site .jp-era-section > .e-con-inner,
body.elementor-page.jp-performance-site .jp-release-section > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  padding: clamp(5rem, 8vw, 8rem) 0 !important;
  gap: clamp(2.5rem, 5vw, 5rem) !important;
}

body.elementor-page.jp-performance-site :is(.jp-era-section, .jp-release-section) > .e-con-inner > .jp-section-intro {
  width: min(100%, var(--jp-content)) !important;
  margin-inline: auto !important;
  padding-inline: var(--jp-gutter) !important;
}

body.elementor-page.jp-performance-site .jp-era-section .jp-section-title .elementor-heading-title {
  color: var(--jp-chalk-performance) !important;
}

body.elementor-page.jp-performance-site .jp-era-section .jp-copy,
body.elementor-page.jp-performance-site .jp-era-section .jp-copy p {
  color: rgba(255, 249, 238, .67) !important;
}

body.elementor-page.jp-performance-site .jp-era-section .jp-meta .elementor-heading-title {
  color: var(--jp-signal-performance) !important;
}

body.elementor-page.jp-performance-site .jp-release-section {
  color: var(--jp-stage);
  background: var(--jp-paper-performance) !important;
}

body.elementor-page.jp-performance-site .jp-release-section .jp-meta .elementor-heading-title {
  color: var(--jp-signal-performance-light) !important;
}

/* Explicit native horizontal performance rails */
body.elementor-page.jp-performance-site .jp-performance-rail {
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: .25rem var(--jp-gutter) 1rem !important;
  gap: clamp(2rem, 4vw, 5rem) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: var(--jp-gutter);
  scroll-snap-type: x mandatory;
  scrollbar-color: var(--jp-signal-performance) transparent;
  scrollbar-width: thin;
  cursor: grab;
}

body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner:active {
  cursor: grabbing;
}

body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner > .jp-project-card {
  flex: 0 0 auto !important;
  min-width: 18rem !important;
  min-height: clamp(34rem, 70svh, 46rem) !important;
  padding: 0 0 clamp(1rem, 2vw, 1.75rem) !important;
  scroll-snap-align: center;
  scroll-snap-stop: always;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}

body.elementor-page.jp-performance-site .jp-chapter-rail > .e-con-inner > .jp-project-card:nth-child(1) { flex-basis: clamp(26rem, 66vw, 64rem) !important; }
body.elementor-page.jp-performance-site .jp-chapter-rail > .e-con-inner > .jp-project-card:nth-child(2) { flex-basis: clamp(23rem, 48vw, 46rem) !important; }
body.elementor-page.jp-performance-site .jp-chapter-rail > .e-con-inner > .jp-project-card:nth-child(3) { flex-basis: clamp(25rem, 58vw, 56rem) !important; }
body.elementor-page.jp-performance-site .jp-chapter-rail > .e-con-inner > .jp-project-card:nth-child(4) { flex-basis: clamp(22rem, 44vw, 42rem) !important; }

body.elementor-page.jp-performance-site .jp-release-rail > .e-con-inner > .jp-project-card:nth-child(1) { flex-basis: clamp(26rem, 60vw, 58rem) !important; }
body.elementor-page.jp-performance-site .jp-release-rail > .e-con-inner > .jp-project-card:nth-child(2) { flex-basis: clamp(23rem, 46vw, 44rem) !important; }
body.elementor-page.jp-performance-site .jp-release-rail > .e-con-inner > .jp-project-card:nth-child(3) { flex-basis: clamp(25rem, 54vw, 52rem) !important; }

body.elementor-page.jp-performance-site .jp-era-section .jp-performance-rail .jp-project-card {
  color: var(--jp-chalk-performance) !important;
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-release-section .jp-performance-rail .jp-project-card {
  color: var(--jp-stage) !important;
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-card {
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-card > .e-con-inner {
  display: grid !important;
  grid-template-rows: auto minmax(15rem, 1fr) auto auto auto auto !important;
  height: 100% !important;
  gap: 1rem !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media {
  height: 100% !important;
  min-height: clamp(15rem, 35svh, 26rem) !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media .elementor-widget-container {
  padding: 0 !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media img {
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: calc(clamp(15rem, 35svh, 26rem) - 2rem) !important;
  object-fit: contain !important;
  transition: filter .35s ease;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-card:hover .jp-project-media img,
body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-card:focus-within .jp-project-media img {
  transform: none !important;
  filter: saturate(1.08);
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-title .elementor-heading-title {
  color: inherit !important;
  font-size: clamp(3.4rem, 6.5vw, 7rem) !important;
  font-weight: 400 !important;
  line-height: .84 !important;
  letter-spacing: -.05em !important;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-title--cjk .elementor-heading-title {
  font-family: "Songti TC", "STSong", "Noto Serif TC", "Source Han Serif TC", "PMingLiU", serif !important;
  font-size: clamp(2.6rem, 3.8vw, 4.6rem) !important;
  font-weight: 600 !important;
  line-height: 1.42 !important;
  letter-spacing: .025em !important;
  text-wrap: balance;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-copy,
body.elementor-page.jp-performance-site .jp-performance-rail .jp-copy p {
  color: inherit !important;
  opacity: .72;
}

body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-index .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-role,
body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-role p {
  color: inherit !important;
  opacity: .68;
}

/* Progressive chapter controls; native rails remain usable without JavaScript. */
body.elementor-page.jp-performance-site .jp-rail-nav {
  display: flex;
  width: min(100%, var(--jp-content));
  margin: 1rem auto 0;
  padding-inline: var(--jp-gutter);
  gap: clamp(.4rem, 1vw, 1rem);
  align-items: center;
}

body.elementor-page.jp-performance-site .jp-rail-nav button {
  display: inline-grid;
  width: auto;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0 .6rem;
  place-items: center;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-family: var(--jp-mono);
  font-size: .75rem;
  cursor: pointer;
}

body.elementor-page.jp-performance-site .jp-era-section .jp-rail-nav button {
  color: var(--jp-chalk-performance);
}

body.elementor-page.jp-performance-site .jp-rail-nav button[aria-current="true"] {
  color: var(--jp-signal-performance);
  background: transparent;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: .4rem;
}

body.elementor-page.jp-performance-site .jp-release-section .jp-rail-nav button[aria-current="true"] {
  color: var(--jp-signal-performance-light);
  background: transparent;
}

/* With scripting disabled, Elementor cannot migrate custom attributes to its
   inner wrapper. Make the attributed outer rail the actual native scrollport. */
@media (scripting: none) {
  body.elementor-page.jp-performance-site .jp-performance-rail {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: var(--jp-gutter);
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--jp-signal-performance) transparent;
    scrollbar-width: thin;
    cursor: grab;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner {
    overflow: visible !important;
  }
}

/* Actions become square editorial controls instead of pills. */
body.elementor-page.jp-performance-site .jp-actions .elementor-button,
body.elementor-page.jp-performance-site .jp-index-action .elementor-button {
  min-height: 44px !important;
  padding: .75rem 1rem !important;
  border-radius: 0 !important;
  border: 0 !important;
  font-family: var(--jp-mono) !important;
  font-size: .75rem !important;
  letter-spacing: .045em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-actions .jp-primary .elementor-button,
body.elementor-page.jp-performance-site .jp-primary .elementor-button {
  color: var(--jp-stage) !important;
  background: var(--jp-signal-performance) !important;
}

body.elementor-page.jp-performance-site :is(.jp-project-card:not(.jp-project-card--dark), .jp-video-card, .jp-spotlight)
  .jp-primary .elementor-button {
  color: var(--jp-chalk-performance) !important;
  background: var(--jp-signal-performance-light) !important;
}

body.elementor-page.jp-performance-site .jp-release-section .jp-actions .elementor-button {
  color: var(--jp-stage) !important;
}

/* Focused-page archives */
body.elementor-page.jp-performance-site .jp-feature,
body.elementor-page.jp-performance-site .jp-video-section,
body.elementor-page.jp-performance-site .jp-spotlight,
body.elementor-page.jp-performance-site .jp-web,
body.elementor-page.jp-performance-site .jp-about,
body.elementor-page.jp-performance-site .jp-experience,
body.elementor-page.jp-performance-site .jp-toolkit {
  border-bottom: 0;
}

/* Scale, media and empty space carry the hierarchy. These resets neutralise
   the previous framed-card layer without weakening keyboard focus outlines. */
body.elementor-page.jp-performance-site :is(
  .jp-site-header,
  .jp-performance-hero,
  .jp-hero-index,
  .jp-hero-art,
  .jp-project-card,
  .jp-project-media,
  .jp-feature-media,
  .jp-media-secondary,
  .jp-about-portrait,
  .jp-video-card,
  .jp-video .elementor-wrapper,
  .jp-web-visual,
  .jp-web-visual-label,
  .jp-index,
  .jp-exp-list,
  .jp-exp-row,
  .jp-tool-group,
  .jp-practice-item,
  .jp-tool,
  .jp-review-quote,
  .jp-contact,
  .jp-footer,
  .jp-nav .elementor-nav-menu--dropdown,
  .jp-nav .elementor-nav-menu--dropdown .elementor-item,
  .elementor-accordion-item,
  .elementor-tab-title,
  .elementor-tab-content
) {
  border: 0 !important;
  box-shadow: none !important;
}

body.elementor-page.jp-performance-site :is(.jp-index-row, .jp-exp-row) > .e-con-inner,
body.elementor-page.jp-performance-site .jp-metrics,
body.elementor-page.jp-performance-site .jp-metrics > .e-con-inner,
body.elementor-page.jp-performance-site :is(.jp-actions, .jp-index-action) .elementor-button {
  border: 0 !important;
  box-shadow: none !important;
}

body.elementor-page.jp-performance-site :is(.jp-tool, .jp-review-quote) {
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-feature-media,
body.elementor-page.jp-performance-site .jp-about-portrait,
body.elementor-page.jp-performance-site .jp-web-visual,
body.elementor-page.jp-performance-site .jp-project-media,
body.elementor-page.jp-performance-site .jp-video-card,
body.elementor-page.jp-performance-site .jp-video .elementor-wrapper {
  border-radius: 0 !important;
}

body.elementor-page.jp-performance-site .jp-feature--dark,
body.elementor-page.jp-performance-site .jp-video-section--dark,
body.elementor-page.jp-performance-site .jp-about,
body.elementor-page.jp-performance-site .jp-contact,
body.elementor-page.jp-performance-site .jp-footer {
  color: var(--jp-chalk-performance);
  background: var(--jp-stage) !important;
}

body.elementor-page.jp-performance-site .jp-feature--light,
body.elementor-page.jp-performance-site .jp-video-section:not(.jp-video-section--dark),
body.elementor-page.jp-performance-site .jp-spotlight,
body.elementor-page.jp-performance-site .jp-web,
body.elementor-page.jp-performance-site .jp-experience,
body.elementor-page.jp-performance-site .jp-current-practice,
body.elementor-page.jp-performance-site .jp-toolkit {
  color: var(--jp-stage);
  background: var(--jp-paper-performance) !important;
}

body.elementor-page.jp-performance-site .jp-feature-media,
body.elementor-page.jp-performance-site .jp-about-portrait {
  border: 0 !important;
  background: var(--jp-panel-performance) !important;
}

body.elementor-page.jp-performance-site .jp-feature-media img,
body.elementor-page.jp-performance-site .jp-about-portrait img,
body.elementor-page.jp-performance-site .jp-web-visual img {
  object-fit: contain !important;
}

body.elementor-page.jp-performance-site .jp-video-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr) !important;
  gap: clamp(.8rem, 2vw, 1.5rem) !important;
}

body.elementor-page.jp-performance-site .jp-video-grid:not(.jp-video-grid--two) > .e-con-inner > .jp-video-card:first-child {
  grid-column: 1 / -1;
}

body.elementor-page.jp-performance-site .jp-video-card {
  padding: clamp(.9rem, 1.6vw, 1.4rem) !important;
  background: transparent !important;
  border: 0 !important;
}

body.elementor-page.jp-performance-site .jp-video-section--dark .jp-video-card {
  color: var(--jp-chalk-performance);
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-video-title .elementor-heading-title {
  font-size: clamp(2rem, 4.2vw, 4.8rem) !important;
  line-height: .9 !important;
  letter-spacing: -.04em !important;
}

body.elementor-page.jp-performance-site .jp-video-title--cjk .elementor-heading-title {
  font-family: "Songti TC", "STSong", "Noto Serif TC", "Source Han Serif TC", "PMingLiU", serif !important;
  font-size: clamp(1.9rem, 3.6vw, 4.1rem) !important;
  font-weight: 600 !important;
  line-height: 1.16 !important;
  letter-spacing: .015em !important;
  white-space: nowrap;
  word-break: keep-all;
}

body.elementor-page.jp-performance-site .jp-video .elementor-wrapper {
  border: 0;
}

body.elementor-page.jp-performance-site .jp-web-gallery > .e-con-inner {
  gap: clamp(.75rem, 1.4vw, 1.2rem) !important;
  scrollbar-color: var(--jp-signal-performance-light) transparent;
}

body.elementor-page.jp-performance-site .jp-web-visual {
  background: var(--jp-chalk-performance) !important;
  border: 0 !important;
  scrollbar-color: rgba(140, 24, 57, .72) transparent;
  scrollbar-width: thin;
}

body.elementor-page.jp-performance-site .jp-web-visual :is(.elementor-widget-image, .elementor-widget-container) {
  width: 100% !important;
  max-width: none !important;
}

body.elementor-page.jp-performance-site .jp-web-visual img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
}

body.elementor-page.jp-performance-site .jp-web-visual::-webkit-scrollbar {
  width: 6px;
}

body.elementor-page.jp-performance-site .jp-web-visual::-webkit-scrollbar-track {
  background: transparent;
}

body.elementor-page.jp-performance-site .jp-web-visual::-webkit-scrollbar-thumb {
  background: rgba(140, 24, 57, .72);
  border: 0;
  border-radius: 0;
}

body.elementor-page.jp-performance-site .jp-web-visual:hover::-webkit-scrollbar-thumb,
body.elementor-page.jp-performance-site .jp-web-visual:focus-visible::-webkit-scrollbar-thumb {
  background: var(--jp-signal-performance-light);
}

body.elementor-page.jp-performance-site .jp-web-visual-label {
  background: rgba(255, 249, 238, .96) !important;
  border: 0 !important;
}

body.elementor-page.jp-performance-site .jp-web-visual-label .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-domain .elementor-heading-title {
  color: var(--jp-signal-performance-light) !important;
}

body.elementor-page.jp-performance-site .jp-index-no {
  padding-inline-start: 1rem !important;
}

body.elementor-page.jp-performance-site .jp-index-row > .e-con-inner,
body.elementor-page.jp-performance-site .jp-exp-row > .e-con-inner {
  border: 0 !important;
  transition: color .2s ease, background-color .2s ease;
}

body.elementor-page.jp-performance-site .jp-index-row:hover > .e-con-inner,
body.elementor-page.jp-performance-site .jp-exp-row:hover > .e-con-inner {
  color: var(--jp-chalk-performance);
  background: var(--jp-stage);
}

body.elementor-page.jp-performance-site .jp-index-row:hover :is(.jp-index-title .elementor-heading-title, .jp-index-no .elementor-heading-title, .jp-index-role, .jp-index-role p),
body.elementor-page.jp-performance-site .jp-exp-row:hover :is(.jp-exp-role .elementor-heading-title, .jp-exp-year .elementor-heading-title, .jp-exp-company, .jp-exp-company p) {
  color: inherit !important;
}

body.elementor-page.jp-performance-site .jp-about .jp-section-title .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-contact-title .elementor-heading-title {
  color: var(--jp-chalk-performance) !important;
}

body.elementor-page.jp-performance-site :is(.jp-feature--dark, .jp-video-section--dark, .jp-about, .jp-contact, .jp-footer) .jp-copy,
body.elementor-page.jp-performance-site :is(.jp-feature--dark, .jp-video-section--dark, .jp-about, .jp-contact, .jp-footer) .jp-copy p {
  color: rgba(255, 249, 238, .72) !important;
}

body.elementor-page.jp-performance-site .jp-about-portrait img {
  width: 100% !important;
  height: auto !important;
}

body.elementor-page.jp-performance-site .jp-spotlight-media {
  width: 100% !important;
  aspect-ratio: 16 / 10;
  overflow: hidden !important;
  background: var(--jp-panel-performance) !important;
}

body.elementor-page.jp-performance-site .jp-spotlight-media .elementor-widget-container {
  width: 100% !important;
  height: 100% !important;
}

body.elementor-page.jp-performance-site .jp-spotlight-media img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

body.elementor-page.jp-performance-site .jp-current-practice {
  color: var(--jp-stage);
  background: var(--jp-chalk-performance) !important;
}

body.elementor-page.jp-performance-site .jp-current-practice .jp-meta .elementor-heading-title {
  color: var(--jp-signal-performance-light) !important;
}

body.elementor-page.jp-performance-site .jp-current-practice > .e-con-inner {
  gap: clamp(3rem, 7vw, 7rem) !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(3.5rem, 8vw, 8rem) clamp(2rem, 7vw, 7rem) !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-project-card {
  min-height: 22rem !important;
  padding: 0 !important;
  color: var(--jp-stage) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-project-card:nth-child(even) {
  padding-top: clamp(2.5rem, 6vw, 6rem) !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-project-card > .e-con-inner {
  height: 100% !important;
  gap: 1rem !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-card-title .elementor-heading-title {
  color: var(--jp-stage) !important;
  font-size: clamp(3rem, 5.5vw, 6rem) !important;
  line-height: .88 !important;
  letter-spacing: -.048em !important;
}

body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-actions {
  margin-top: auto !important;
}

body.elementor-page.jp-performance-site .jp-contact {
  min-height: 78svh !important;
}

body.elementor-page.jp-performance-site .jp-contact > .e-con-inner {
  min-height: 78svh !important;
}

body.elementor-page.jp-performance-site .jp-contact-title .elementor-heading-title {
  max-width: 11ch;
  font-size: clamp(5rem, 10vw, 10rem) !important;
  font-weight: 400 !important;
  line-height: .82 !important;
  letter-spacing: -.055em !important;
}

body.elementor-page.jp-performance-site .jp-contact-email .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-contact-email a {
  color: var(--jp-signal-performance) !important;
  font-family: var(--jp-mono) !important;
  font-size: clamp(1rem, 1.8vw, 1.35rem) !important;
  letter-spacing: .01em !important;
}

body.elementor-page.jp-performance-site .jp-contact--form > .e-con-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 5fr) minmax(22rem, 7fr) !important;
  grid-template-rows: auto auto auto 1fr !important;
  column-gap: clamp(3rem, 8vw, 9rem) !important;
  row-gap: clamp(1rem, 2vw, 1.75rem) !important;
  align-content: center !important;
  align-items: start !important;
}

body.elementor-page.jp-performance-site .jp-contact--form > .e-con-inner > :is(.jp-meta, .jp-contact-title, .jp-contact-email, .jp-contact-note) {
  grid-column: 1 !important;
}

body.elementor-page.jp-performance-site .jp-contact--form .jp-meta { grid-row: 1; }
body.elementor-page.jp-performance-site .jp-contact--form .jp-contact-title { grid-row: 2; }
body.elementor-page.jp-performance-site .jp-contact--form .jp-contact-email { grid-row: 3; }
body.elementor-page.jp-performance-site .jp-contact--form .jp-contact-note { grid-row: 4; align-self: end; }

body.elementor-page.jp-performance-site .jp-contact--form .jp-contact-title .elementor-heading-title {
  font-size: clamp(4rem, 7vw, 7.5rem) !important;
}

body.elementor-page.jp-performance-site .jp-contact-form {
  grid-column: 2 !important;
  grid-row: 1 / span 4 !important;
  width: 100% !important;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-form-fields-wrapper {
  row-gap: 1rem !important;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-group {
  margin-bottom: 0 !important;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-label {
  margin-bottom: .45rem !important;
  color: rgba(255, 249, 238, .72) !important;
  font-family: var(--jp-mono) !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-textual {
  min-height: 52px;
  padding: .9rem 1rem !important;
  color: var(--jp-chalk-performance) !important;
  background: rgba(255, 249, 238, .09) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  caret-color: var(--jp-signal-performance);
}

body.elementor-page.jp-performance-site .jp-contact-form textarea.elementor-field-textual {
  min-height: 10rem;
  resize: vertical;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-textual::placeholder {
  color: rgba(255, 249, 238, .45) !important;
  opacity: 1;
}

body.elementor-page.jp-performance-site .jp-contact-form select.elementor-field-textual option {
  color: var(--jp-stage);
  background: var(--jp-chalk-performance);
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-type-acceptance .elementor-field {
  min-height: auto;
  padding: 0 !important;
  background: transparent !important;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-field-option {
  color: rgba(255, 249, 238, .72) !important;
  font-size: .88rem;
  line-height: 1.55;
}

body.elementor-page.jp-performance-site .jp-contact-form input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  margin: .15rem .55rem 0 0;
  accent-color: var(--jp-signal-performance);
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-button {
  width: 100% !important;
  min-height: 54px !important;
  padding: .9rem 1.25rem !important;
  justify-content: center;
  color: var(--jp-stage) !important;
  background: var(--jp-signal-performance) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--jp-mono) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-message {
  color: var(--jp-chalk-performance) !important;
  font-size: .9rem;
  line-height: 1.5;
}

body.elementor-page.jp-performance-site .jp-contact-form .elementor-message-danger {
  color: var(--jp-signal-performance) !important;
}

body.elementor-page.jp-performance-site .jp-footer {
  border: 0 !important;
}

body.elementor-page.jp-performance-site .jp-footer .elementor-heading-title,
body.elementor-page.jp-performance-site .jp-footer .elementor-widget-text-editor,
body.elementor-page.jp-performance-site .jp-footer .elementor-widget-text-editor p {
  color: rgba(255, 249, 238, .62) !important;
}

@media (max-width: 1024px) {
  body.elementor-page.jp-performance-site .jp-performance-hero > .e-con-inner {
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    min-height: 86svh !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-intro {
    grid-column: 1 / span 6 !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-media {
    grid-column: 7 / -1 !important;
    min-height: 28rem !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-media > .e-con-inner {
    min-height: 28rem !important;
  }

  body.elementor-page.jp-performance-site .jp-display .elementor-heading-title {
    font-size: clamp(4.8rem, 11vw, 7.5rem) !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner > .jp-project-card {
    min-height: 36rem !important;
  }

  body.elementor-page.jp-performance-site .jp-video-grid > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.elementor-page.jp-performance-site .jp-contact--form > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    align-content: start !important;
    gap: 1.25rem !important;
  }

  body.elementor-page.jp-performance-site .jp-contact--form > .e-con-inner > :is(.jp-meta, .jp-contact-title, .jp-contact-email, .jp-contact-form, .jp-contact-note) {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  body.elementor-page.jp-performance-site .jp-contact--form .jp-contact-form {
    margin-top: clamp(1.5rem, 4vw, 3rem) !important;
  }

  body.elementor-page.jp-performance-site.jp-menu-open {
    overflow: hidden !important;
  }

  body.elementor-page.jp-performance-site .jp-site-header > .e-con-inner,
  body.elementor-page.jp-performance-site .jp-brand,
  body.elementor-page.jp-performance-site .jp-nav,
  body.elementor-page.jp-performance-site .jp-nav .elementor-menu-toggle {
    position: relative;
    z-index: 1002;
  }

  body.elementor-page.jp-performance-site .jp-nav .elementor-menu-toggle {
    display: inline-grid !important;
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
    padding: .75rem !important;
    color: var(--jp-chalk-performance) !important;
    background: transparent !important;
    border: 0 !important;
    place-items: center;
  }

  body.elementor-page.jp-performance-site .jp-nav .elementor-menu-toggle svg {
    fill: currentColor !important;
  }

  body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--dropdown {
    position: fixed !important;
    z-index: 1001;
    inset: 0 !important;
    display: grid !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: clamp(6rem, 13vh, 9rem) var(--jp-gutter) clamp(2rem, 6vh, 4rem) !important;
    overflow-y: auto !important;
    color: var(--jp-chalk-performance) !important;
    background: var(--jp-stage) !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    clip-path: inset(0 0 100% 0);
    transition: clip-path .55s cubic-bezier(.75, 0, .2, 1), opacity .25s ease, visibility 0s linear .55s;
  }

  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    clip-path: inset(0);
    transition-delay: 0s;
  }

  body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--dropdown .elementor-nav-menu {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    margin: auto 0;
    gap: clamp(.15rem, 1.4vh, .75rem);
    align-items: flex-start;
  }

  body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--dropdown .menu-item {
    width: 100%;
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity .35s ease, transform .5s cubic-bezier(.2, .7, .2, 1);
  }

  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item {
    opacity: 1;
    transform: translateY(0);
  }

  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item:nth-child(2) { transition-delay: .05s; }
  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item:nth-child(3) { transition-delay: .10s; }
  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item:nth-child(4) { transition-delay: .15s; }
  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item:nth-child(5) { transition-delay: .20s; }
  body.elementor-page.jp-performance-site.jp-menu-open .jp-nav .elementor-nav-menu--dropdown .menu-item:nth-child(6) { transition-delay: .25s; }

  body.elementor-page.jp-performance-site .jp-nav .elementor-nav-menu--dropdown .elementor-item {
    display: flex !important;
    width: auto !important;
    min-height: 48px;
    padding: .08em 0 !important;
    color: var(--jp-chalk-performance) !important;
    background: transparent !important;
    font-family: var(--jp-performance-display) !important;
    font-size: clamp(3.2rem, 10vw, 6.8rem) !important;
    font-weight: 400 !important;
    line-height: .9 !important;
    letter-spacing: -.045em !important;
    text-transform: none;
  }
}

@media (max-width: 767px) {
  body.elementor-page.jp-performance-site .jp-site-header,
  body.elementor-page.jp-performance-site .jp-site-header > .e-con-inner {
    min-height: 60px !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero {
    min-height: auto !important;
    overflow: hidden !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero > .e-con-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    min-height: auto !important;
    padding: 7.5rem var(--jp-gutter) 2rem !important;
    gap: 1.5rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-intro {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 0 !important;
  }

  body.elementor-page.jp-performance-site .jp-display .elementor-heading-title {
    max-width: 9ch;
    font-size: clamp(4.1rem, 18vw, 6.4rem) !important;
    line-height: .82 !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero .jp-lede,
  body.elementor-page.jp-performance-site .jp-performance-hero .jp-lede p {
    font-size: 1rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero .jp-actions .elementor-widget-button,
  body.elementor-page.jp-performance-site .jp-performance-hero .jp-actions .elementor-button {
    width: auto !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-media {
    grid-column: 1 !important;
    grid-row: 2 !important;
    min-height: 44svh !important;
    height: 44svh !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-media > .e-con-inner {
    min-height: 44svh !important;
    height: 44svh !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-art--1 {
    grid-column: 1 / span 8;
    grid-row: 2 / -1;
  }

  body.elementor-page.jp-performance-site .jp-hero-art--2 {
    grid-column: 8 / -1;
    grid-row: 1 / span 7;
  }

  body.elementor-page.jp-performance-site .jp-hero-art--3 {
    grid-column: 9 / -1;
    grid-row: 8 / -1;
  }

  body.elementor-page.jp-performance-site .jp-performance-hero .jp-hero-index {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }

  body.elementor-page.jp-performance-site .jp-section-title .elementor-heading-title,
  body.elementor-page.jp-performance-site .jp-feature-title .elementor-heading-title {
    font-size: clamp(3.2rem, 15vw, 5rem) !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner {
    grid-auto-flow: unset !important;
    grid-auto-columns: unset !important;
    padding-inline: var(--jp-gutter) !important;
    gap: .75rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail > .e-con-inner > .jp-project-card,
  body.elementor-page.jp-performance-site .jp-chapter-rail > .e-con-inner > .jp-project-card:nth-child(n),
  body.elementor-page.jp-performance-site .jp-release-rail > .e-con-inner > .jp-project-card:nth-child(n) {
    flex-basis: min(84vw, 22rem) !important;
    min-width: min(84vw, 22rem) !important;
    min-height: 33rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-card > .e-con-inner {
    grid-template-rows: auto minmax(12rem, 1fr) auto auto auto auto !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media {
    min-height: 13rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media img {
    max-height: 12rem !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-title .elementor-heading-title {
    font-size: clamp(3rem, 14vw, 4.8rem) !important;
  }

  body.elementor-page.jp-performance-site .jp-performance-rail .jp-card-title--cjk .elementor-heading-title {
    font-size: clamp(2.6rem, 10vw, 3rem) !important;
    line-height: 1.42 !important;
  }

  body.elementor-page.jp-performance-site .jp-rail-nav {
    width: 100%;
    margin-top: .65rem;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  body.elementor-page.jp-performance-site .jp-video-grid > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.elementor-page.jp-performance-site .jp-current-practice-grid > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 3.5rem !important;
  }

  body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-project-card:nth-child(even) {
    padding-top: 0 !important;
  }

  body.elementor-page.jp-performance-site .jp-current-practice-grid .jp-project-card {
    min-height: 0 !important;
  }

  body.elementor-page.jp-performance-site .jp-video-grid:not(.jp-video-grid--two) > .e-con-inner > .jp-video-card:first-child {
    grid-column: 1;
  }

  body.elementor-page.jp-performance-site .jp-contact {
    min-height: 68svh !important;
  }

  body.elementor-page.jp-performance-site .jp-contact > .e-con-inner {
    min-height: 68svh !important;
  }

  body.elementor-page.jp-performance-site .jp-contact-title .elementor-heading-title {
    font-size: clamp(4rem, 18vw, 6rem) !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero {
    min-height: 100svh !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero > .e-con-inner {
    grid-template-rows: minmax(0, 1fr) auto !important;
    min-height: 100svh !important;
    padding: clamp(5.5rem, 12vh, 7rem) var(--jp-gutter) clamp(1.5rem, 4vh, 2.5rem) !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero .jp-hero-intro {
    grid-row: 1 !important;
    align-self: end !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero .jp-hero-index {
    grid-row: 2 !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero-media {
    grid-column: 1 / -1 !important;
    grid-row: 1 / -1 !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero-media,
  body.elementor-page.jp-performance-site .jp-fullscreen-hero-media > .e-con-inner {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
  }

  body.elementor-page.jp-performance-site .jp-fullscreen-hero .jp-display .elementor-heading-title {
    font-size: clamp(3.8rem, 16vw, 5.6rem) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.elementor-page.jp-performance-site *,
  body.elementor-page.jp-performance-site *::before,
  body.elementor-page.jp-performance-site *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  body.elementor-page.jp-performance-site .jp-hero-art img,
  body.elementor-page.jp-performance-site .jp-performance-rail .jp-project-media img,
  body.elementor-page.jp-performance-site .jp-project-card {
    filter: none !important;
    transform: none !important;
  }
}
