/* Portal CSS part: watch screening room, review screening room and project room. */
/* Split from portal.css (Phase 6): linked straight after portal.css and the earlier portal-*.css parts, in this order, so the cascade is unchanged. */

/* -------------------------------------------------------------------------
   Portal watch page — private screening room.
   ------------------------------------------------------------------------- */

body.watch-page.portal-page {
  background:
    radial-gradient(circle at 72% 34%, rgba(var(--orange-rgb), 0.12), transparent 30%),
    radial-gradient(circle at 22% 78%, rgba(var(--green-deep-rgb), 0.58), transparent 36%),
    var(--black);
}

body.watch-page.portal-page .work-bg-overlay {
  opacity: 0.2;
}

body.watch-page.portal-page .watch-content {
  max-width: 1600px;
  min-height: calc(100vh - var(--header-h, 72px));
  padding: clamp(88px, 8vw, 120px) clamp(20px, 4vw, 64px) clamp(48px, 7vw, 96px);
}

body.watch-page.portal-page .watch-screening-room {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  min-height: 0;
}

body.watch-page.portal-page .watch-screening-copy {
  order: 2;
  min-width: 0;
}

body.watch-page.portal-page .watch-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-4, 16px);
  margin: 0 0 20px;
  padding: 0;
}

body.watch-page.portal-page .view-meta {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  align-items: start;
  gap: 24px 40px;
}

body.watch-page.portal-page .watch-screening-label {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  color: var(--orange, var(--orange));
  font-family: var(--client-type-technical, var(--font-mono));
  font-size: var(--rf-type-size-10px, 10px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1, 1);
  text-transform: uppercase;
}

body.watch-page.portal-page .watch-screening-label::before {
  content: "";
  width: 32px;
  height: 2px;
  border-radius: 2px;
  background: var(--orange, var(--orange));
}

body.watch-page.portal-page .view-title {
  grid-column: 1;
  max-width: 760px;
  margin: 0;
  color: rgba(var(--rf-tone-neutral-rgb), 0.94);
  font-family: var(--rf-type-heading-family);
  font-weight: var(--rf-type-heading-weight);
  letter-spacing: var(--rf-type-heading-tracking);
  line-height: var(--rf-type-leading-0-98);
  text-wrap: balance;
  text-shadow: 0 18px 58px color-mix(in srgb, var(--black) 62%, transparent);
  --rf-type-heading-size: var(--rf-type-size-56px);
}

body.watch-page.portal-page .watch-film-meta {
  grid-column: 1;
  margin: 16px 0 0;
  color: rgba(var(--cream-rgb), 0.52);
  font-family: var(--client-type-body, var(--font-body));
  font-size: var(--rf-type-size-15px, 15px);
  font-weight: 800;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1-35, 1.35);
}

body.watch-page.portal-page .watch-film-meta:empty {
  display: none;
}

body.watch-page.portal-page .watch-screening-actions {
  grid-column: 2;
  grid-row: 2 / span 2;
  justify-content: flex-end;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 0;
}

body.watch-page.portal-page .watch-screening-facts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  max-width: none;
  margin: 10px 0 0;
  padding: 0;
  border-top: 1px solid rgba(var(--cream-rgb), 0.12);
  border-bottom: 1px solid rgba(var(--cream-rgb), 0.1);
}

body.watch-page.portal-page .watch-screening-facts div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 16px 20px 16px 0;
  border-top: 0;
}

body.watch-page.portal-page .watch-screening-facts dt {
  margin: 0;
  color: rgba(var(--cream-rgb), 0.36);
  font-family: var(--client-type-technical, var(--font-mono));
  font-size: var(--rf-type-size-9px, 9px);
  font-weight: 600;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1-2, 1.2);
  text-transform: uppercase;
}

body.watch-page.portal-page .watch-screening-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: rgba(var(--rf-tone-neutral-rgb), 0.78);
  font-family: var(--client-type-body, var(--font-body));
  font-size: var(--rf-type-size-13px, 13px);
  font-weight: 700;
  line-height: var(--rf-type-leading-1-25, 1.25);
}

body.watch-page.portal-page .watch-format-section,
body.watch-page.portal-page .watch-controls,
body.watch-page.portal-page .portal-version-note,
body.watch-page.portal-page #deliverable-links {
  grid-column: 1 / -1;
  max-width: none;
}

body.watch-page.portal-page .watch-format-section {
  margin-top: 0;
}

body.watch-page.portal-page .watch-controls {
  margin-top: 0;
}

body.watch-page.portal-page .watch-screening-player {
  order: 1;
  min-width: 0;
  position: relative;
  display: flex;
  justify-content: center;
}

body.watch-page.portal-page .watch-screening-player::before {
  content: "";
  position: absolute;
  inset: 14% 2% -16% 2%;
  border-radius: var(--radius-full);
  background:
    radial-gradient(circle at 50% 35%, rgba(var(--orange-rgb), 0.18), transparent 58%),
    radial-gradient(circle at 28% 65%, rgba(var(--green-deep-rgb), 0.34), transparent 62%);
  filter: blur(20px);
  pointer-events: none;
}

body.watch-page.portal-page .view-player-container {
  position: relative;
  overflow: hidden;
  width: min(100%, 1500px, calc((100vh - 210px) * 16 / 9));
  margin: 0 auto;
  border: 1px solid rgba(var(--rf-tone-neutral-rgb), 0.13);
  border-top-color: rgba(var(--rf-tone-neutral-rgb), 0.25);
  border-radius: var(--radius-md, 12px);
  background: var(--black);
  box-shadow:
    0 44px 120px color-mix(in srgb, var(--black) 78%, transparent),
    0 0 0 1px rgba(var(--orange-rgb), 0.08);
}

body.watch-page.portal-page .view-player-container:has(.player-aspect-1-1) {
  width: min(100%, 820px);
}

body.watch-page.portal-page .view-player-container:has(.player-aspect-9-16) {
  width: min(100%, 500px);
}

body.watch-page.portal-page .view-player-container:has(.player-aspect-4-5) {
  width: min(100%, 660px);
}

body.watch-page.portal-page .view-player-container::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--black) 28%, transparent), transparent 30%, color-mix(in srgb, var(--black) 18%, transparent)),
    linear-gradient(180deg, rgba(var(--rf-tone-neutral-rgb), 0.05), transparent 16%);
}

body.watch-page.portal-page .view-player-container .player-wrap,
body.watch-page.portal-page .view-player-container video {
  border-radius: var(--radius-md, 12px);
}

body.watch-page.portal-page .view-player-container .player-wrap {
  width: 100%;
}

body.watch-page.portal-page .view-player-container .player-controls {
  opacity: 0.78;
  z-index: 5;
}

body.watch-page.portal-page .player-big-play-btn {
  width: 74px;
  height: 74px;
  border-color: rgba(var(--orange-rgb), 0.42);
  background: rgba(var(--orange-rgb), 0.92);
  color: #160a03;
  box-shadow: 0 0 0 9px rgba(var(--orange-rgb), 0.14), 0 18px 48px color-mix(in srgb, var(--black) 36%, transparent);
}

body.watch-page.portal-page .player-big-play-btn::before,
body.watch-page.portal-page .player-big-play-btn::after {
  display: none;
}

body.watch-page.portal-page .player-big-play-btn svg {
  width: 28px;
  height: 28px;
  fill: currentColor;
  filter: none;
}

body.watch-page.portal-page .portal-format-selector,
body.watch-page.portal-page .portal-version-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.watch-page.portal-page .portal-version-note {
  margin: 12px 0 0;
  color: rgba(var(--cream-rgb), 0.52);
  font-size: var(--rf-type-size-13px, 13px);
  line-height: 1.55;
}

body.watch-page.portal-page.watch-is-playing .site-header,
body.watch-page.portal-page.watch-is-playing .watch-screening-copy {
  opacity: 0.32;
  transition: opacity 220ms var(--rf-motion-spring, cubic-bezier(0.16, 1, 0.3, 1));
}

body.watch-page.portal-page.watch-is-playing .site-header:hover,
body.watch-page.portal-page.watch-is-playing .site-header:focus-within,
body.watch-page.portal-page.watch-is-playing .watch-screening-copy:hover,
body.watch-page.portal-page.watch-is-playing .watch-screening-copy:focus-within {
  opacity: 1;
}

@media (max-width: 1120px) {
  body.watch-page.portal-page .watch-screening-room {
    gap: 28px;
  }

  body.watch-page.portal-page .watch-header {
    margin-bottom: 18px;
  }

  body.watch-page.portal-page .view-meta {
    grid-template-columns: 1fr;
  }

  body.watch-page.portal-page .view-title {
    max-width: 780px;
    --rf-type-heading-size: var(--rf-type-size-48px);
  }

  body.watch-page.portal-page .watch-screening-actions {
    grid-column: 1;
    grid-row: auto;
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  body.watch-page.portal-page .watch-content {
    padding: 92px 14px 48px;
  }

  body.watch-page.portal-page .watch-header {
    gap: 8px;
    margin-bottom: 28px;
  }

  body.watch-page.portal-page .view-title {
    max-width: none;
    line-height: var(--rf-type-leading-1-04);
    --rf-type-heading-size: var(--rf-type-size-36px);
  }

  body.watch-page.portal-page .watch-film-meta {
    font-size: var(--rf-type-size-13px, 13px);
  }

  body.watch-page.portal-page .watch-screening-actions {
    align-items: stretch;
  }

  body.watch-page.portal-page .watch-screening-facts {
    grid-template-columns: 1fr;
    gap: 0;
  }

  body.watch-page.portal-page .watch-screening-facts div {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 12px 0;
    border-top: 1px solid rgba(var(--cream-rgb), 0.1);
  }

  body.watch-page.portal-page .watch-screening-facts div:first-child {
    border-top: 0;
  }

  body.watch-page.portal-page .player-buttons {
    gap: 6px;
  }

  body.watch-page.portal-page .player-volume-wrap {
    display: none;
  }

  body.watch-page.portal-page .player-time {
    font-size: var(--rf-type-size-10px, 10px);
    letter-spacing: 0;
  }
}

/* -------------------------------------------------------------------------
   Portal review page — screening-room review surface.
   Mirrors the watch page hierarchy: film first, project as quiet context.
------------------------------------------------------------------------- */

body.review-page.portal-page {
  display: block;
  min-height: 100vh;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  background:
    radial-gradient(circle at 72% 34%, rgba(var(--orange-rgb), 0.12), transparent 30%),
    radial-gradient(circle at 22% 78%, rgba(var(--green-deep-rgb), 0.58), transparent 36%),
    var(--black);
}

body.review-page.portal-page .work-bg-overlay {
  opacity: 0.2;
}

body.review-page.portal-page .review-room {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.75rem);
  width: min(100%, 1520px);
  min-height: calc(100vh - var(--header-h, 4.5rem));
  margin: 0 auto;
  padding: clamp(5rem, 7vw, 7.25rem) clamp(1rem, 3.6vw, 4.5rem) clamp(1.75rem, 3vw, 3.5rem);
}

body.review-page.portal-page .review-bar {
  display: grid;
  grid-template-columns: minmax(18rem, 1fr) minmax(14rem, auto);
  align-items: end;
  gap: clamp(1rem, 2vw, 2rem);
  min-height: 0;
  padding: 0;
  border: 0;
}

body.review-page.portal-page .review-bar-left {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  padding-left: 0;
}

body.review-page.portal-page .review-screening-label {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin: clamp(1.5rem, 4vw, 3rem) 0 0;
  color: var(--orange, var(--orange));
  font-family: var(--client-type-technical, var(--font-mono));
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1, 1);
  text-transform: uppercase;
}

body.review-page.portal-page .review-screening-label::before {
  content: "";
  width: 2rem;
  height: 0.12rem;
  border-radius: var(--radius-pill, 999rem);
  background: var(--orange, var(--orange));
}

body.review-page.portal-page .review-title {
  display: block;
  max-width: 11ch;
  margin: 0;
  color: rgba(var(--rf-tone-neutral-rgb), 0.94);
  font-family: var(--rf-type-heading-family);
  font-weight: var(--rf-type-heading-weight);
  letter-spacing: var(--rf-type-heading-tracking);
  line-height: var(--rf-type-leading-0-92);
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  text-wrap: balance;
  text-shadow: 0 1.4rem 4.5rem color-mix(in srgb, var(--black) 72%, transparent);
  --rf-type-heading-size: var(--rf-type-size-clamp-3-25rem-6vw-5-4rem);
}

body.review-page.portal-page .review-film-meta {
  margin: 0;
  color: rgba(var(--cream-rgb), 0.52);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1-35, 1.35);
}

body.review-page.portal-page .review-context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(1rem, 2vw, 1.4rem);
  max-width: 38rem;
  margin: clamp(0.75rem, 1.5vw, 1.25rem) 0 0;
  padding: 0;
}

body.review-page.portal-page .review-context div {
  min-width: 0;
  padding-top: 0.85rem;
  border-top: thin solid rgba(var(--cream-rgb), 0.12);
}

body.review-page.portal-page .review-context dt {
  margin: 0 0 0.45rem;
  color: rgba(var(--cream-rgb), 0.36);
  font-family: var(--client-type-technical, var(--font-mono));
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1-2, 1.2);
  text-transform: uppercase;
}

body.review-page.portal-page .review-context dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: rgba(var(--rf-tone-neutral-rgb), 0.78);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.82rem;
  font-weight: 700;
  line-height: var(--rf-type-leading-1-25, 1.25);
}

body.review-page.portal-page .review-bar-right {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.65rem;
  align-self: end;
}

body.review-page.portal-page .review-version-dropdown {
  min-height: 2.4rem;
  border: thin solid rgba(var(--cream-rgb), 0.12);
  border-radius: var(--client-control-radius, 10px);
  background: rgba(var(--cream-rgb), 0.055);
  color: rgba(var(--cream-rgb), 0.72);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

body.review-page.portal-page .review-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 26rem);
  gap: clamp(1rem, 2vw, 1.75rem);
  min-height: min(42rem, calc(100vh - 20rem));
  overflow: visible;
  max-width: none;
}

body.review-page.portal-page .review-video-area {
  position: relative;
  min-width: 0;
  overflow: visible;
  padding: 0;
}

body.review-page.portal-page .review-video-area::before {
  content: "";
  position: absolute;
  inset: 8% -6% -10% 18%;
  border-radius: var(--radius-pill, 999rem);
  background: radial-gradient(circle, rgba(var(--orange-rgb), 0.16), transparent 62%);
  filter: blur(18px);
  pointer-events: none;
}

body.review-page.portal-page .video-container {
  position: relative;
  width: 100%;
  max-height: none;
  min-height: 0;
  margin: 0;
  border: thin solid rgba(var(--cream-rgb), 0.13);
  border-top-color: rgba(var(--rf-tone-neutral-rgb), 0.25);
  border-radius: var(--radius-md, 0.75rem);
  overflow: hidden;
  background: var(--black);
  box-shadow:
    0 2.15rem 5.65rem color-mix(in srgb, var(--black) 72%, transparent),
    0 0 0 0.06rem rgba(var(--orange-rgb), 0.08);
}

body.review-page.portal-page .video-container::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--black) 28%, transparent), transparent 30%, color-mix(in srgb, var(--black) 18%, transparent)),
    linear-gradient(180deg, rgba(var(--rf-tone-neutral-rgb), 0.05), transparent 16%);
}

body.review-page.portal-page .video-container video {
  border-radius: var(--radius-md, 0.75rem);
}

body.review-page.portal-page .feedback-sidebar {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: thin solid rgba(var(--cream-rgb), 0.12);
  border-radius: var(--radius-md, 0.75rem);
  background: color-mix(in srgb, var(--black) 62%, transparent);
  box-shadow: 0 1.4rem 3.5rem color-mix(in srgb, var(--black) 34%, transparent);
}

body.review-page.portal-page .review-panel-tabs,
body.review-page.portal-page .filter-tabs,
body.review-page.portal-page .approval-section {
  border-color: rgba(var(--cream-rgb), 0.1);
}

body.review-page.portal-page .feedback-panel-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

body.review-page.portal-page .composer {
  display: grid;
  gap: 0.65rem;
  padding: 1rem 1.05rem;
  background: rgba(var(--cream-rgb), 0.035);
  border-bottom-color: rgba(var(--cream-rgb), 0.1);
}

body.review-page.portal-page .feedback-panel-content.is-review-locked .composer,
body.review-page.portal-page .feedback-panel-content.is-review-locked .comment-actions,
body.review-page.portal-page .feedback-panel-content.is-review-locked #btn-approve,
body.review-page.portal-page .feedback-panel-content.is-review-locked #btn-request-changes {
  display: none;
}

body.review-page.portal-page .feedback-panel-content.is-review-locked .review-locked-message {
  display: flex;
}

body.review-page.portal-page .composer-prompt {
  margin: 0;
  color: rgba(var(--cream-rgb), 0.46);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: var(--rf-type-leading-1-25, 1.25);
}

body.review-page.portal-page .composer-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.6rem;
  align-items: start;
}

body.review-page.portal-page .composer-timecode {
  margin: 0;
  padding: 0.52rem 0.58rem;
  border-radius: var(--radius-sm, 0.5rem);
  background: rgba(var(--orange-rgb), 0.13);
  color: rgba(var(--orange-rgb), 0.88);
  font-family: var(--client-type-technical, var(--font-mono));
  font-size: 0.68rem;
  font-weight: 700;
  line-height: var(--rf-type-leading-1, 1);
}

body.review-page.portal-page .composer-input-wrap {
  min-width: 0;
  gap: 0.55rem;
}

body.review-page.portal-page .composer-footer {
  min-height: 1.5rem;
}

body.review-page.portal-page .filter-tabs {
  display: flex;
  gap: 0.35rem;
  padding: 0.72rem 1.05rem;
  background: color-mix(in srgb, var(--black) 8%, transparent);
}

body.review-page.portal-page .filter-tab {
  min-height: 2rem;
  padding: 0 0.78rem;
  border-radius: var(--radius-pill, 999rem);
  color: rgba(var(--cream-rgb), 0.42);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0;
}

body.review-page.portal-page .filter-tab.active {
  background: rgba(var(--orange-rgb), 0.14);
  color: rgba(var(--rf-tone-neutral-rgb), 0.86);
}

body.review-page.portal-page .filter-tab.active::after {
  display: none;
}

body.review-page.portal-page .comments-area {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0.9rem 1.05rem;
}

body.review-page.portal-page .comment-empty {
  flex: 1 1 auto;
  min-height: 16rem;
  padding: 2rem 1.2rem;
  color: rgba(var(--cream-rgb), 0.24);
}

body.review-page.portal-page .comment-empty-title {
  color: rgba(var(--rf-tone-neutral-rgb), 0.42);
  font-family: var(--rf-type-heading-family);
  letter-spacing: var(--rf-type-heading-tracking);
  --rf-type-heading-size: var(--rf-type-size-0-98rem);
}

body.review-page.portal-page .comment-empty-sub {
  color: rgba(var(--cream-rgb), 0.28);
  font-size: 0.78rem;
}

body.review-page.portal-page .approval-section {
  margin-top: auto;
  padding: 0.9rem 1.05rem;
  background: color-mix(in srgb, var(--black) 16%, transparent);
}

body.review-page.portal-page .approval-buttons {
  gap: 0.65rem;
}

body.review-page.portal-page .commenter-name-bar {
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.85rem;
  padding: 0.75rem;
  border: thin solid rgba(var(--cream-rgb), 0.1);
  border-radius: var(--radius-md, 0.75rem);
  background: rgba(var(--cream-rgb), 0.035);
  color: rgba(var(--cream-rgb), 0.48);
  font-family: var(--client-type-body, var(--font-body));
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0;
}

body.review-page.portal-page .commenter-name-bar label {
  flex: 0 0 auto;
}

body.review-page.portal-page .commenter-name-bar input[type="text"] {
  min-width: 0;
}

body.review-page.portal-page .portal-format-selector {
  margin-top: 0.85rem;
}

@media (max-width: 980px) {
  body.review-page.portal-page .review-bar {
    grid-template-columns: 1fr;
  }

  body.review-page.portal-page .review-bar-right {
    justify-content: flex-start;
  }

  body.review-page.portal-page .review-split {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  body.review-page.portal-page .feedback-sidebar {
    min-height: 34rem;
  }
}

@media (max-width: 640px) {
  body.review-page.portal-page .review-room {
    padding: 5.25rem 0.9rem 2.5rem;
  }

  body.review-page.portal-page .review-title {
    max-width: 11ch;
    --rf-type-heading-size: var(--rf-type-size-3-05rem);
  }

  body.review-page.portal-page .review-context {
    grid-template-columns: 1fr;
  }

  body.review-page.portal-page .review-bar-right {
    align-items: stretch;
  }

  body.review-page.portal-page .review-version-dropdown {
    flex: 1 1 auto;
    min-height: 2.75rem;
  }

  body.review-page.portal-page .composer-row,
  body.review-page.portal-page .commenter-name-bar {
    grid-template-columns: 1fr;
  }

  body.review-page.portal-page .commenter-name-bar {
    display: grid;
  }

  body.review-page.portal-page .video-container {
    min-height: 13rem;
  }

  body.review-page.portal-page .review-video-area::before {
    display: none;
  }

  body.review-page.portal-page .feedback-sidebar {
    min-height: 38rem;
  }
}

/* -------------------------------------------------------------------------
   Project room redesign — final visual authority for portal-project-landing.
   ------------------------------------------------------------------------- */

body.portal-page.project-landing-page {
  --rf-radius-md: var(--radius-md);
  --rf-radius-pill: var(--radius-pill);
  background: #06140f;
  color: #f1e8dc;
  opacity: 1;
  animation: none;
}

body.portal-page.project-landing-page .work-bg-overlay {
  background:
    linear-gradient(180deg, rgba(var(--green-deep-rgb), 0.7) 0%, rgba(6,20,15,0.90) 42%, #07140f 100%);
}

body.portal-page.project-landing-page .project-landing-title {
  display: block;
  opacity: 1;
  transform: none;
  filter: none;
  font-family: var(--rf-type-heading-family);
  font-weight: var(--rf-type-heading-weight);
  line-height: var(--rf-type-leading-1-02);
  max-width: 820px;
  color: #fff8ec;
  text-shadow: 0 1px 0 color-mix(in srgb, var(--black) 24%, transparent);
  --rf-type-heading-size: var(--rf-type-size-clamp-40px-6vw-72px);
}

body.portal-page.project-landing-page .project-landing-status {
  color: rgba(255,248,236,0.88);
}

body.portal-page.project-landing-page .project-landing-description {
  color: rgba(255,248,236,0.70);
}

body.portal-page.project-landing-page .project-review-card {
  border-color: rgba(245,236,223,0.16);
  background: rgba(245,236,223,0.045);
  box-shadow: 0 30px 80px color-mix(in srgb, var(--black) 28%, transparent);
}

body.portal-page.project-landing-page .project-review-media {
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--black) 34%, transparent), rgba(var(--green-deep-rgb), 0.22)),
    color-mix(in srgb, var(--black) 20%, transparent);
}

body.portal-page.project-landing-page .project-review-player-placeholder {
  min-height: 315px;
  display: grid;
  place-items: center;
  gap: 14px;
  color: rgba(245,236,223,0.72);
  font-family: var(--client-type-technical);
  font-size: var(--rf-type-size-11px, 11px);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.portal-page.project-landing-page .project-review-play-glyph {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: var(--rf-radius-pill);
  background: rgba(var(--orange-rgb), 0.92);
  color: #160a03;
  box-shadow: 0 14px 38px color-mix(in srgb, var(--black) 28%, transparent);
}

body.portal-page.project-landing-page .project-review-play-glyph svg {
  width: 22px;
  height: 22px;
  transform: translateX(2px);
}

body.portal-page.project-landing-page .project-review-title,
body.portal-page.project-landing-page .planned-output-title,
body.portal-page.project-landing-page .music-summary-title,
body.portal-page.project-landing-page .files-summary-title {
  font-family: var(--rf-type-heading-family);
  color: #fff8ec;
}

body.portal-page.project-landing-page .project-review-meta,
body.portal-page.project-landing-page .planned-output-meta,
body.portal-page.project-landing-page .planned-output-state,
body.portal-page.project-landing-page .music-summary-meta,
body.portal-page.project-landing-page .files-summary-meta {
  color: rgba(255,248,236,0.58);
}

@media (max-width: 639px) {
  body.portal-page.project-landing-page .project-landing-room {
    grid-template-columns: 1fr;
  }

  body.portal-page.project-landing-page .project-landing-title {
    --rf-type-heading-size: var(--rf-type-size-clamp-34px-12vw-48px);
  }

  body.portal-page.project-landing-page .project-review-player-placeholder {
    min-height: 190px;
  }
}
