/* FFF Lab public UI v2 shell. Loaded only when fff_lab_ui_v2_enabled is on. */

.fff-ui-v2 .fff-v2-fixture {
  width: min(100% - 32px, 960px);
  margin: 48px auto;
}

.fff-ui-v2 .fff-v2-fixture__header {
  max-width: 620px;
  margin-bottom: var(--fff-v2-space-6);
}

.fff-ui-v2 .fff-v2-fixture h1,
.fff-ui-v2 .fff-v2-fixture h2,
.fff-ui-v2 .fff-v2-fixture p {
  color: var(--fff-v2-ink);
}

.fff-ui-v2 .fff-v2-fixture h1 {
  margin: var(--fff-v2-space-1) 0 var(--fff-v2-space-3);
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

.fff-ui-v2 .fff-v2-fixture h2 {
  margin: 0 0 var(--fff-v2-space-4);
  font-size: 1rem;
}

.fff-ui-v2 .fff-v2-eyebrow {
  margin: 0;
  color: var(--fff-v2-ink-muted) !important;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fff-ui-v2 .fff-v2-fixture__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--fff-v2-space-4);
}

.fff-ui-v2 .fff-v2-panel {
  min-width: 0;
  padding: var(--fff-v2-space-5);
  border: 1px solid var(--fff-v2-line);
  border-radius: var(--fff-v2-radius-surface);
  background: var(--fff-v2-surface);
}

.fff-ui-v2 .fff-v2-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fff-v2-space-2);
  align-items: center;
}

.fff-ui-v2 .fff-v2-panel .fff-v2-progress {
  margin-top: var(--fff-v2-space-4);
}

.fff-ui-v2 .fff-v2-panel .fff-v2-feedback + .fff-v2-feedback {
  margin-top: var(--fff-v2-space-2);
}

@media (max-width: 860px) {
  .fff-ui-v2 .fff-v2-fixture__grid {
    grid-template-columns: 1fr;
  }
}

.fff-ui-v2 .fff-v2-home-hero,
.fff-ui-v2 .fff-v2-catalog {
  width: min(100% - 32px, 1180px);
  margin-inline: auto;
}

.fff-ui-v2 .fff-v2-home-hero {
  padding: clamp(48px, 8vw, 112px) 0 clamp(28px, 5vw, 64px);
  border-bottom: 1px solid var(--fff-v2-line);
}

.fff-ui-v2 .fff-v2-home-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .64fr);
  gap: clamp(32px, 8vw, 112px);
  align-items: end;
}

.fff-ui-v2 .fff-v2-home-hero h1 {
  max-width: 700px;
  margin: var(--fff-v2-space-2) 0 var(--fff-v2-space-4);
  color: var(--fff-v2-ink);
  font-size: clamp(2.65rem, 6vw, 5.7rem);
  font-weight: 780;
  line-height: .94;
  letter-spacing: -.06em;
}

.fff-ui-v2 .fff-v2-home-hero__lead {
  max-width: 520px;
  margin: 0;
  color: var(--fff-v2-ink-muted);
  font-size: clamp(1rem, 1.65vw, 1.25rem);
  line-height: 1.55;
}

.fff-ui-v2 .fff-v2-home-hero__actions { display: flex; flex-wrap: wrap; gap: var(--fff-v2-space-2); margin-top: var(--fff-v2-space-5); }
.fff-ui-v2 .fff-v2-home-hero__score { margin: 0; padding: 0 0 var(--fff-v2-space-3); color: var(--fff-v2-ink); }
.fff-ui-v2 .fff-v2-home-hero__score svg { display: block; width: 100%; height: auto; }
.fff-ui-v2 .fff-v2-score__lines path { fill: none; stroke: var(--fff-v2-line); stroke-width: 1; }
.fff-ui-v2 .fff-v2-score__notes { fill: var(--fff-v2-accent); stroke: var(--fff-v2-accent); stroke-width: 2; }
.fff-ui-v2 .fff-v2-home-hero__score figcaption { margin-top: var(--fff-v2-space-2); color: var(--fff-v2-ink-muted); font-size: .875rem; }

.fff-ui-v2 .fff-v2-continue { display: none; }

.fff-ui-v2 .fff-v2-catalog { padding: clamp(28px, 5vw, 70px) 0 calc(92px + var(--fff-v2-safe-bottom)); }
.fff-ui-v2 .fff-v2-catalog__nav { display: flex; gap: var(--fff-v2-space-4); overflow-x: auto; padding-bottom: var(--fff-v2-space-3); border-bottom: 1px solid var(--fff-v2-line); }
.fff-ui-v2 .fff-v2-catalog__nav a { flex: 0 0 auto; color: var(--fff-v2-ink-muted); font-size: .875rem; font-weight: 700; text-decoration: none; }
.fff-ui-v2 .fff-v2-catalog__nav a:hover { color: var(--fff-v2-accent); text-decoration: underline; text-underline-offset: 4px; }
.fff-ui-v2 .fff-v2-rubric { padding: clamp(36px, 7vw, 82px) 0 0; scroll-margin-top: 88px; }
.fff-ui-v2 .fff-v2-rubric + .fff-v2-rubric { border-top: 1px solid var(--fff-v2-line); margin-top: clamp(36px, 7vw, 82px); }
.fff-ui-v2 .fff-v2-rubric__header { display: grid; grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr); gap: var(--fff-v2-space-5); margin-bottom: var(--fff-v2-space-5); }
.fff-ui-v2 .fff-v2-rubric__header h2 { margin: 0; color: var(--fff-v2-ink); font-size: clamp(1.5rem, 3vw, 2.5rem); letter-spacing: -.04em; }
.fff-ui-v2 .fff-v2-rubric__header p { max-width: 500px; margin: 0; color: var(--fff-v2-ink-muted); line-height: 1.5; }
.fff-ui-v2 .fff-v2-app-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); }
.fff-ui-v2 .fff-v2-app-row { display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; gap: var(--fff-v2-space-3); align-items: center; min-height: 88px; padding: var(--fff-v2-space-3) 0; border-top: 1px solid var(--fff-v2-line); color: var(--fff-v2-ink); text-decoration: none; }
.fff-ui-v2 .fff-v2-app-row img, .fff-ui-v2 .fff-v2-app-row__mark { width: 54px; height: 54px; object-fit: cover; border-radius: 8px; background: var(--fff-v2-surface-muted); }
.fff-ui-v2 .fff-v2-app-row__copy { min-width: 0; display: grid; gap: 3px; }
.fff-ui-v2 .fff-v2-app-row__copy strong { font-size: 1rem; }
.fff-ui-v2 .fff-v2-app-row__copy span, .fff-ui-v2 .fff-v2-app-row__meta span { color: var(--fff-v2-ink-muted); font-size: .8125rem; line-height: 1.35; }
.fff-ui-v2 .fff-v2-app-row__meta { display: grid; justify-items: end; gap: 3px; text-align: right; }
.fff-ui-v2 .fff-v2-app-row__meta b { color: var(--fff-v2-accent); font-size: 1.2rem; font-weight: 500; }
.fff-ui-v2 .fff-v2-app-row:hover strong, .fff-ui-v2 .fff-v2-app-row:focus-visible strong { color: var(--fff-v2-accent); }

@media (max-width: 760px) {
  .fff-ui-v2 .fff-v2-home-hero,
  .fff-ui-v2 .fff-v2-catalog { width: min(100% - 24px, 680px); }
  .fff-ui-v2 .fff-v2-home-hero { padding: 24px 0 18px; }
  .fff-ui-v2 .fff-v2-home-hero__inner { display: block; }
  .fff-ui-v2 .fff-v2-home-hero h1 { max-width: 480px; font-size: clamp(2.2rem, 11vw, 3.25rem); }
  .fff-ui-v2 .fff-v2-home-hero__lead { font-size: 1rem; }
  .fff-ui-v2 .fff-v2-home-hero__score, .fff-ui-v2 .fff-v2-home-hero__actions .fff-v2-button--secondary { display: none; }
  .fff-ui-v2 .fff-v2-continue { display: block; margin-top: var(--fff-v2-space-5); padding: var(--fff-v2-space-3) 0; border-top: 1px solid var(--fff-v2-line); }
  .fff-ui-v2 .fff-v2-continue[hidden] { display: none; }
  .fff-ui-v2 .fff-v2-continue__label { display: block; margin-bottom: 2px; color: var(--fff-v2-ink-muted); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
  .fff-ui-v2 .fff-v2-continue__link { display: flex; align-items: center; justify-content: space-between; min-height: 44px; color: var(--fff-v2-ink); text-decoration: none; }
  .fff-ui-v2 .fff-v2-continue__link strong { font-size: 1.05rem; }
  .fff-ui-v2 .fff-v2-continue__link span { color: var(--fff-v2-accent); font-size: 1.3rem; }
  .fff-ui-v2 .fff-v2-catalog { padding-top: 22px; }
  .fff-ui-v2 .fff-v2-catalog__nav { margin-inline: -12px; padding-inline: 12px; gap: var(--fff-v2-space-3); }
  .fff-ui-v2 .fff-v2-rubric { padding-top: 38px; scroll-margin-top: 64px; }
  .fff-ui-v2 .fff-v2-rubric + .fff-v2-rubric { margin-top: 38px; }
  .fff-ui-v2 .fff-v2-rubric__header { display: block; margin-bottom: var(--fff-v2-space-3); }
  .fff-ui-v2 .fff-v2-rubric__header h2 { font-size: 1.6rem; }
  .fff-ui-v2 .fff-v2-rubric__header p { margin-top: var(--fff-v2-space-2); font-size: .9375rem; }
  .fff-ui-v2 .fff-v2-app-list { grid-template-columns: 1fr; }
  .fff-ui-v2 .fff-v2-app-row { grid-template-columns: 46px minmax(0, 1fr) auto; min-height: 72px; gap: 10px; }
  .fff-ui-v2 .fff-v2-app-row img, .fff-ui-v2 .fff-v2-app-row__mark { width: 46px; height: 46px; }
  .fff-ui-v2 .fff-v2-app-row__copy span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .fff-ui-v2 .fff-v2-app-row__meta span { display: none; }
}

/* Shared application shell. Plugin workspaces and event contracts remain intact. */
.fff-ui-v2.fff-v2-app-page .fff-app-page-actions { display: none !important; }
.fff-ui-v2.fff-v2-app-page .fff-app-page-content,
.fff-ui-v2.fff-v2-app-page .fff-page-content { padding-top: 14px; }
.fff-ui-v2.fff-v2-app-page .fff-app-page-content > .wp-block-post-content,
.fff-ui-v2.fff-v2-app-page .fff-page-content > .wp-block-post-content { max-width: 1060px; border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 0; }
.fff-ui-v2.fff-v2-app-width-wide .fff-app-page-content > .wp-block-post-content,
.fff-ui-v2.fff-v2-app-width-wide .fff-page-content > .wp-block-post-content { max-width: 1240px; }
.fff-ui-v2.fff-v2-app-width-canvas .fff-app-page-content > .wp-block-post-content,
.fff-ui-v2.fff-v2-app-width-canvas .fff-page-content > .wp-block-post-content { max-width: 1380px; }
.fff-ui-v2 .fff-v2-app-shell { max-width: inherit; margin: 0 auto var(--fff-v2-space-3); }
.fff-ui-v2 .fff-v2-app-shell__toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; min-height: 52px; gap: var(--fff-v2-space-3); border-bottom: 1px solid var(--fff-v2-line); }
.fff-ui-v2 .fff-v2-app-shell__back { display: inline-flex; align-items: center; min-height: 44px; gap: 5px; color: var(--fff-v2-ink); font-size: .875rem; font-weight: 700; text-decoration: none; }
.fff-ui-v2 .fff-v2-app-shell__back svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.fff-ui-v2 .fff-v2-app-shell__name { overflow: hidden; margin: 0; color: var(--fff-v2-ink); font-size: .95rem; font-weight: 750; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; }

/* Pilot plugin adapters. These rules style only the new opt-in roots and do not
   replace plugin IDs, state classes, audio controls, or progress contracts. */
.fff-ui-v2 .fff-v2-plugin {
  width: 100%;
  max-width: none;
  color: var(--fff-v2-ink);
  font-family: var(--fff-v2-font-sans, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
.fff-ui-v2 .fff-v2-plugin :where(button, summary, select, input):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--fff-v2-accent) 32%, transparent);
  outline-offset: 2px;
}
.fff-ui-v2 .fff-v2-plugin :where([data-fff-action="start-exercise"], [data-fff-action="start-or-repeat"], [data-fff-action="next-exercise"]) {
  min-height: 48px;
  border-radius: 8px;
  box-shadow: none;
}
.fff-ui-v2 .fff-v2-plugin :where([data-fff-action="repeat-example"], [data-fff-action="previous-exercise"]) {
  min-height: 44px;
  border-radius: 8px;
  box-shadow: none;
}
.fff-ui-v2 .fff-v2-plugin :where([data-fff-action="toggle-settings"], [data-fff-action="switch-view"], [data-fff-action="switch-mode"]) {
  box-shadow: none;
}
.fff-ui-v2 .fff-v2-plugin :where(.lab-app__inner, .sl-int__card, .sa-workspace, .fff-exercise) {
  box-shadow: none;
}
.fff-ui-v2 .fff-v2-plugin :where(.lab-app__header .lab-app__title, .fff-header .lab-app__title) {
  display: none;
}
.fff-ui-v2 .fff-v2-plugin--rhythm .topbar .brand {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.fff-ui-v2 .fff-v2-plugin--rhythm .transport {
  gap: var(--fff-v2-space-2);
}

.fff-ui-v2 .fff-v2-tabbar { display: none; }
.fff-ui-v2 .fff-v2-more-menu[hidden] { display: none; }
.fff-ui-v2 .fff-v2-more-menu { position: fixed; z-index: 10020; inset: 0; display: grid; align-items: end; }
.fff-ui-v2 .fff-v2-more-menu__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 0; background: rgba(23, 36, 58, .5); }
.fff-ui-v2 .fff-v2-more-menu__sheet { box-sizing: border-box; position: relative; width: min(100%, 520px); max-width: 100vw; min-width: 0; max-height: min(78svh, 620px); margin-inline: auto; overflow-x: hidden; overflow-y: auto; padding: 18px 16px calc(20px + var(--fff-v2-safe-bottom)); border-radius: 16px 16px 0 0; background: var(--fff-v2-surface); box-shadow: 0 -12px 30px rgba(23, 36, 58, .18); }
.fff-ui-v2 .fff-v2-more-menu__sheet header { display: flex; align-items: center; justify-content: space-between; gap: var(--fff-v2-space-3); margin-bottom: var(--fff-v2-space-3); }
.fff-ui-v2 .fff-v2-more-menu__sheet header > * { min-width: 0; }
.fff-ui-v2 .fff-v2-more-menu__sheet h2 { margin: 0; color: var(--fff-v2-ink); font-size: 1.2rem; }
.fff-ui-v2 .fff-v2-icon-button { box-sizing: border-box; flex: 0 0 40px; display: inline-grid; width: 40px; height: 40px; min-width: 40px; min-height: 40px; place-items: center; padding: 0; border: 1px solid var(--fff-v2-line); border-radius: 999px; background: var(--fff-v2-surface); color: var(--fff-v2-ink); font: inherit; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.fff-ui-v2 .fff-v2-more-menu__sheet > a,
.fff-ui-v2 .fff-v2-more-menu__sheet > button:not(.fff-v2-icon-button) { display: flex; width: 100%; min-height: 50px; align-items: center; justify-content: space-between; padding: 10px 0; border: 0; border-top: 1px solid var(--fff-v2-line); border-radius: 0; background: transparent; color: var(--fff-v2-ink); font: inherit; font-weight: 650; text-align: left; text-decoration: none; cursor: pointer; }
.fff-ui-v2 .fff-support-modal { z-index: 10040; }
body.fff-v2-more-open { overflow: hidden; }

@media (max-width: 760px) {
  .fff-ui-v2 .fff-v2-more-menu__sheet { width: 100%; max-width: 100%; padding-right: max(16px, env(safe-area-inset-right)); padding-left: max(16px, env(safe-area-inset-left)); }
  .fff-ui-v2 .fff-v2-tabbar { position: fixed; z-index: 9980; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3, 1fr); min-height: calc(64px + var(--fff-v2-safe-bottom)); padding: 5px 8px var(--fff-v2-safe-bottom); border-top: 1px solid var(--fff-v2-line); background: rgba(255, 253, 248, .97); }
  .fff-ui-v2 .fff-v2-tabbar > a,
  .fff-ui-v2 .fff-v2-tabbar > button { display: grid; min-width: 0; min-height: 52px; place-items: center; align-content: center; gap: 2px; border: 0; border-radius: 8px; background: transparent; color: var(--fff-v2-ink-muted); font: inherit; font-size: .72rem; font-weight: 700; text-decoration: none; }
  .fff-ui-v2 .fff-v2-tabbar svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; }
  .fff-ui-v2 .fff-v2-tabbar .is-active { color: var(--fff-v2-accent); }
  .fff-ui-v2.fff-v2-app-page .fff-app-page-content,
  .fff-ui-v2.fff-v2-app-page .fff-page-content { padding: 8px 12px calc(104px + var(--fff-v2-safe-bottom)); }
  .fff-ui-v2 .fff-v2-app-shell__name { text-align: left; }
  .fff-ui-v2 .fff-v2-app-shell__back span { display: none; }
}

/* v0.34.0 — editorial desktop layer and projector workspace. The rules are
   opt-in under .fff-ui-v2 and do not alter plugin event contracts. */
.fff-ui-v2 {
  --fff-v2-paper: #f4f1e9;
  --fff-v2-paper-deep: #ebe7dc;
  --fff-v2-ink: #1d2d3e;
  --fff-v2-muted: #68717a;
  --fff-v2-rust: #b5653b;
}

body.fff-ui-v2 {
  background: var(--fff-v2-paper);
}

body.fff-ui-v2::before {
  opacity: .035;
}

.fff-ui-v2 .fff-site-header {
  background: rgba(244, 241, 233, .96);
  border-bottom: 1px solid rgba(29, 45, 62, .12);
  box-shadow: none;
}

.fff-ui-v2 .fff-main-nav a,
.fff-ui-v2 .fff-profile-pill,
.fff-ui-v2 .fff-support-button--desktop,
.fff-ui-v2 .fff-language-switcher__toggle {
  border-radius: 9px;
  box-shadow: none;
}

.fff-ui-v2 .fff-main-nav a:hover,
.fff-ui-v2 .fff-main-nav a:focus-visible {
  background: rgba(29, 45, 62, .06);
}

.fff-ui-v2 .fff-v2-home-hero {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: clamp(56px, 8vw, 112px) max(24px, calc((100vw - 1280px) / 2)) clamp(48px, 6vw, 88px);
  border-bottom: 1px solid rgba(29, 45, 62, .14);
  background: var(--fff-v2-paper);
}

.fff-ui-v2 .fff-v2-home-hero__inner {
  width: min(100%, 1280px);
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .72fr);
  gap: clamp(48px, 7vw, 118px);
  align-items: center;
}

.fff-ui-v2 .fff-v2-home-hero h1 {
  max-width: 8.4em;
  font-size: clamp(3.7rem, 6.2vw, 6.5rem);
  line-height: .9;
  letter-spacing: -.072em;
}

.fff-ui-v2 .fff-v2-home-hero__lead {
  max-width: 34em;
  color: var(--fff-v2-muted);
  font-size: clamp(1.05rem, 1.5vw, 1.24rem);
}

.fff-ui-v2 .fff-v2-home-hero__actions .fff-v2-button {
  border-radius: 9px;
  box-shadow: none;
}

.fff-ui-v2 .fff-v2-home-hero__score {
  padding: 30px 0 30px 40px;
  border-left: 1px solid rgba(29, 45, 62, .22);
}

.fff-ui-v2 .fff-v2-home-hero__score img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: contain;
}

.fff-ui-v2 .fff-v2-home-hero__score figcaption {
  margin-top: 18px;
  color: var(--fff-v2-muted);
  font-size: .9rem;
  font-weight: 700;
}

.fff-ui-v2 .fff-v2-catalog {
  width: min(100% - 64px, 1280px);
  padding-top: 38px;
}

@media (min-width: 761px) {
  .fff-ui-v2 .fff-v2-catalog__nav {
    position: sticky;
    top: 70px;
    z-index: 20;
    padding-block: 14px;
    background: rgba(244, 241, 233, .96);
  }

  .fff-ui-v2 .fff-v2-catalog__nav a {
    color: var(--fff-v2-ink);
  }

  .fff-ui-v2 .fff-v2-rubric {
    padding-top: clamp(52px, 6vw, 82px);
  }

  .fff-ui-v2 .fff-v2-rubric + .fff-v2-rubric {
    margin-top: clamp(28px, 4vw, 58px);
  }
}

.fff-ui-v2 .fff-v2-rubric__header {
  grid-template-columns: minmax(280px, .7fr) minmax(0, 1fr);
  align-items: end;
  margin-bottom: 24px;
}

.fff-ui-v2 .fff-v2-rubric__header h2 {
  font-size: clamp(2rem, 3.5vw, 3.3rem);
  line-height: .96;
}

.fff-ui-v2 .fff-v2-rubric__header p {
  max-width: 42em;
  font-size: 1rem;
}

.fff-ui-v2 .fff-v2-app-list {
  row-gap: 0;
}

.fff-ui-v2 .fff-v2-app-row {
  grid-template-columns: 72px minmax(0, 1fr) auto;
  min-height: 102px;
  gap: 18px;
  padding: 15px 0;
  border-top-color: rgba(29, 45, 62, .18);
  transition: background-color 160ms ease, padding-inline 160ms ease;
}

.fff-ui-v2 .fff-v2-app-row:hover,
.fff-ui-v2 .fff-v2-app-row:focus-visible {
  padding-inline: 12px;
  background: rgba(255, 253, 248, .68);
}

.fff-ui-v2 .fff-v2-app-row__media {
  display: grid;
  position: relative;
  place-items: center;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border-radius: 10px;
  background: var(--fff-v2-paper-deep);
}

.fff-ui-v2 .fff-v2-app-row__media img {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  background: var(--fff-v2-paper-deep);
}

.fff-ui-v2 .fff-v2-app-row__fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  color: var(--fff-v2-rust);
}

.fff-ui-v2 .fff-v2-app-row__fallback svg {
  width: 42px;
  height: 42px;
}

.fff-ui-v2 .fff-v2-app-row__media.has-image .fff-v2-app-row__fallback {
  visibility: hidden;
}

.fff-ui-v2 .fff-v2-app-row__media.is-fallback img {
  display: none;
}

.fff-ui-v2 .fff-v2-app-row__copy strong {
  font-size: 1.1rem;
  letter-spacing: -.015em;
}

.fff-ui-v2 .fff-v2-app-row__copy span {
  max-width: 45em;
  font-size: .9rem;
}

.fff-ui-v2 .fff-v2-app-row__meta span {
  font-size: .75rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.fff-ui-v2 .fff-v2-app-row--featured {
  grid-column: 1 / -1;
  grid-template-columns: 104px minmax(0, 1fr) auto;
  min-height: 142px;
  margin-bottom: 8px;
  padding: 20px 18px;
  border-top: 2px solid var(--fff-v2-rust);
  border-bottom: 1px solid rgba(29, 45, 62, .18);
  background: rgba(255, 253, 248, .55);
}

.fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__media {
  width: 104px;
  height: 104px;
}

.fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__copy strong {
  font-size: clamp(1.32rem, 2vw, 1.65rem);
}

.fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__copy span {
  font-size: .98rem;
}

.fff-ui-v2 .fff-v2-app-shell {
  margin-bottom: 20px;
}

.fff-ui-v2 .fff-v2-app-shell__toolbar {
  min-height: 64px;
  border-bottom-color: rgba(29, 45, 62, .18);
}

.fff-ui-v2 .fff-v2-app-workspace {
  width: 100%;
  min-width: 0;
}

@media (min-width: 1024px) {
  .fff-ui-v2 .fff-v2-app-workspace {
    padding-bottom: 28px;
  }

  .fff-ui-v2 .fff-v2-app-workspace :where(.fff-rt-app, .sa-workspace, .sl-int__card, .fff-lab-kadence-app, .tfl-kviz, .mel-vaje-shell, .ffd-app, .fff-pw, .fff-hg) {
    width: 100%;
    max-width: 1360px;
    margin-inline: auto;
  }

  .fff-ui-v2 .fff-v2-app-workspace :where(.sa-workspace, .sl-int__card, .tfl-kviz__shell, .mel-vaje-shell, .ffd-app) {
    border-radius: 10px;
  }
}

.fff-ui-v2 .fff-v2-projector-exit {
  display: none;
}

body.fff-ui-v2.fff-v2-projector {
  min-height: 100vh;
  overflow-x: hidden;
  background: #102234;
  color: #f7f4ec;
}

body.fff-ui-v2.fff-v2-projector .fff-site-header,
body.fff-ui-v2.fff-v2-projector .fff-site-footer,
body.fff-ui-v2.fff-v2-projector .fff-v2-tabbar,
body.fff-ui-v2.fff-v2-projector .fff-v2-app-shell__back,
body.fff-ui-v2.fff-v2-projector .fff-v2-app-shell > .fff-v2-icon-button {
  display: none !important;
}

body.fff-ui-v2.fff-v2-projector .fff-app-page-content,
body.fff-ui-v2.fff-v2-projector .fff-page-content {
  width: 100%;
  max-width: 1640px;
  min-height: 100vh;
  margin-inline: auto;
  padding: 18px 28px 36px;
}

body.fff-ui-v2.fff-v2-projector .fff-v2-app-shell__toolbar {
  min-height: 56px;
  border-bottom-color: rgba(247, 244, 236, .25);
}

body.fff-ui-v2.fff-v2-projector .fff-v2-app-shell__name {
  color: #f7f4ec;
  font-size: 1.1rem;
}

body.fff-ui-v2.fff-v2-projector .fff-v2-projector-exit:not([hidden]) {
  display: inline-flex;
  position: fixed;
  top: 14px;
  left: 18px;
  z-index: 10040;
  min-height: 42px;
  align-items: center;
  padding: 8px 13px;
  border: 1px solid rgba(247, 244, 236, .26);
  border-radius: 8px;
  background: rgba(16, 34, 52, .9);
  color: #f7f4ec;
  font: inherit;
  font-size: .82rem;
  font-weight: 750;
  cursor: pointer;
}

body.fff-ui-v2.fff-v2-projector .fff-v2-app-workspace {
  color: #1d2d3e;
}

@media (max-width: 760px) {
  .fff-ui-v2 .fff-v2-home-hero {
    padding: 28px 16px 24px;
  }

  .fff-ui-v2 .fff-v2-home-hero h1 {
    max-width: 7.2em;
    font-size: clamp(2.55rem, 12vw, 4rem);
  }

  .fff-ui-v2 .fff-v2-home-hero__score {
    display: none;
  }

  .fff-ui-v2 .fff-v2-catalog {
    width: min(100% - 24px, 680px);
  }

  .fff-ui-v2 .fff-v2-app-row,
  .fff-ui-v2 .fff-v2-app-row--featured {
    grid-column: auto;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    min-height: 76px;
    gap: 12px;
    margin-bottom: 0;
    padding: 12px 0;
    border-top-width: 1px;
    background: transparent;
  }

  .fff-ui-v2 .fff-v2-app-row__media,
  .fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__media {
    width: 56px;
    height: 56px;
  }

  .fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__copy strong,
  .fff-ui-v2 .fff-v2-app-row__copy strong {
    font-size: 1rem;
  }

  .fff-ui-v2 .fff-v2-app-row__copy span,
  .fff-ui-v2 .fff-v2-app-row--featured .fff-v2-app-row__copy span {
    display: -webkit-box;
    overflow: hidden;
    font-size: .82rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .fff-ui-v2 .fff-v2-app-row:hover,
  .fff-ui-v2 .fff-v2-app-row:focus-visible {
    padding-inline: 0;
    background: transparent;
  }

  body.fff-ui-v2.fff-v2-projector .fff-app-page-content,
  body.fff-ui-v2.fff-v2-projector .fff-page-content {
    padding: 12px 14px 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fff-ui-v2 .fff-v2-app-row { transition: none; }
}
