/* =========================================================================
   CURSEBREAKERS — shared styles for index.html (landing) and imprint.html
   All rules are scoped under .cb-landing and prefixed cb- so they will not
   collide with the existing site. Design tokens live on .cb-landing.

   ASSET FILES (keep these next to the HTML + this CSS, or update the paths):
     fonts/Decree.woff2                      -> header font
     fonts/roboto-latin-300/500.woff2        -> body font (self-hosted)
     video/Cursebreakers_BackgroundLogo.webm -> full-screen background video (+ .mp4 fallback)
     video/bg-still.jpg                      -> static background for reduced-motion users
     img/Cursebreakers_LOGO_1120.png/.webp   -> game logo (top, centered)
     img/FalseWallLogo.svg                   -> studio logo (top-left, home button)
     img/RegisterButton.png                  -> newsletter register button
   ========================================================================= */

/* Header font: requested rendering is 90% height / 100% width, done as a
   vertical squash via --cb-decree-scale-y (change it in one place).
   Note: Decree ships without umlaut glyphs — browsers fall back per-glyph.  */
@font-face {
  font-family: "Decree";
  src: url("fonts/Decree.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Body font, self-hosted (was Google Fonts — removes a render-blocking
   third-party stylesheet and two extra origin connections).                */
@font-face {
  font-family: "Roboto";
  src: url("fonts/roboto-latin-300.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Roboto";
  src: url("fonts/roboto-latin-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

html, body { margin: 0; }
html { scroll-behavior: smooth; }

.cb-landing {
  /* palette pulled from the artwork: icy royal blue + cyan glow on near-black */
  --cb-void:   #05070e;
  --cb-ink:    #0a0f1e;
  --cb-frost:  #e9f2ff;   /* body text                */
  --cb-mist:   #9bbbe6;   /* muted text / placeholder */
  --cb-arcane: #2f7bff;   /* accent (matches "BREAKERS") */
  --cb-glow:   #6db6ff;   /* glow (matches logo + buttons) */
  --cb-line:   rgba(120, 185, 255, 0.40);

  --cb-decree-scale-y: 0.9;   /* header height (width stays 100%) */
  --cb-maxw: 640px;

  position: relative;
  isolation: isolate;          /* own stacking context so the video layers cleanly */
  background: var(--cb-void);  /* fallback colour, sits BEHIND the video */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--cb-frost);
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 300;
  text-align: center;
  overflow-x: hidden;
}

.cb-landing *, .cb-landing *::before, .cb-landing *::after { box-sizing: border-box; }

/* --- Background video (always-on, bottom layer) -------------------------- */
.cb-bg {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  background: var(--cb-void); /* dark fill until the first frame paints */
  pointer-events: none;
}

/* Dark vignette so text stays readable over any frame of the video */
.cb-scrim {
  position: fixed;
  inset: 0;
  z-index: 1;                 /* over the video, under the content */
  pointer-events: none;
  background:
    radial-gradient(120% 90% at 50% 30%, transparent 40%, rgba(5,7,14,0.55) 100%),
    linear-gradient(to bottom, rgba(5,7,14,0.55) 0%, rgba(5,7,14,0.15) 30%, rgba(5,7,14,0.55) 78%, rgba(5,7,14,0.85) 100%);
}

/* --- Studio logo / home button (top-left, fixed) ------------------------- */
.cb-home {
  position: fixed;
  top: 20px;
  left: 24px;
  z-index: 20;
  display: inline-block;
  line-height: 0;
  transition: transform 0.25s ease, filter 0.25s ease;
}
.cb-home img {
  width: 160px;              /* enlarged (was 76px) */
  height: auto;
  display: block;
  filter: drop-shadow(0 0 12px rgba(109,182,255,0.35));
}
.cb-home:hover, .cb-home:focus-visible {
  transform: translateY(-1px) scale(1.04);
  filter: drop-shadow(0 0 18px rgba(109,182,255,0.7));
  outline: none;
}

/* --- Main content column (landing) -------------------------------------- */
.cb-main {
  position: relative;
  z-index: 2;                /* content sits above video + scrim */
  width: 100%;
  max-width: var(--cb-maxw);
  padding: 64px 24px 48px;   /* reduced top gap (was 128px) */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

/* Game logo (top, centered). h1 wrap is for SEO; visuals stay on .cb-logo */
.cb-logo-heading {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: 0;
}
.cb-logo {
  width: 560px;              /* enlarged again */
  max-width: 92%;
  height: auto;
  margin-bottom: -20px;      /* tightens the gap to the trailer */
  filter: drop-shadow(0 6px 26px rgba(47,123,255,0.35));
}

/* Legal pages: static still instead of looping video */
.cb-landing-still {
  background: var(--cb-void) url("video/bg-still.jpg") center / cover no-repeat fixed;
}

/* --- Trailer embed ------------------------------------------------------- */
.cb-trailer {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  overflow: hidden;
  background: rgba(6, 10, 22, 0.55);
  box-shadow: 0 0 0 1px rgba(5,7,14,0.6), 0 0 34px rgba(47,123,255,0.18);
}
.cb-trailer iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Click-to-play facade: local thumbnail until the user asks for YouTube */
.cb-trailer-facade { position: relative; }
.cb-trailer-facade > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cb-trailer-play {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: rgba(5,7,14,0.25);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}
.cb-trailer-play svg {
  width: 74px;
  height: 74px;
  padding: 6px;
  box-sizing: border-box;
  fill: var(--cb-frost);
  filter: drop-shadow(0 0 18px rgba(47,123,255,0.45));
  transition: transform 0.2s ease, filter 0.2s ease;
}
.cb-trailer-play:hover, .cb-trailer-play:focus-visible { background: rgba(5,7,14,0.1); outline: none; }
.cb-trailer-play:hover svg, .cb-trailer-play:focus-visible svg {
  transform: scale(1.07);
  filter: drop-shadow(0 0 26px rgba(109,182,255,0.7));
}

/* --- Description --------------------------------------------------------- */
.cb-desc {
  margin: 0;
  font-size: clamp(1rem, 1.1vw + 0.85rem, 1.18rem);
  line-height: 1.75;
  color: var(--cb-frost);
  text-shadow: 0 1px 14px rgba(5,7,14,0.85);
  max-width: 40rem;
}
.cb-cry {
  display: inline-block;
  color: var(--cb-glow);
  letter-spacing: 0.06em;
  text-shadow: 0 0 16px rgba(109,182,255,0.7);
  white-space: nowrap;
}

/* --- Social links (below the trailer) ----------------------------------- */
.cb-social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: -16px;          /* sit just under the trailer */
}
.cb-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  color: var(--cb-mist);
  transition: color 0.2s ease, transform 0.2s ease, filter 0.2s ease;
}
.cb-social svg { width: 21px; height: 21px; display: block; fill: currentColor; }
.cb-social a:hover, .cb-social a:focus-visible {
  color: var(--cb-glow);
  transform: translateY(-2px);
  filter: drop-shadow(0 0 8px rgba(109, 182, 255, 0.6));
  outline: none;
}

/* --- Image buttons (wishlist + register) -------------------------------- */
.cb-btn {
  display: inline-block;
  line-height: 0;
  border: 0;
  padding: 0;
  background: none;
  cursor: pointer;
  transition: transform 0.22s ease, filter 0.22s ease;
}
.cb-btn img {
  width: 300px;
  max-width: 82vw;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 12px rgba(109,182,255,0.28));
}
.cb-btn:hover img, .cb-btn:focus-visible img {
  filter: brightness(1.12) drop-shadow(0 0 20px rgba(109,182,255,0.65));
}
.cb-btn:hover, .cb-btn:focus-visible { transform: translateY(-2px) scale(1.02); outline: none; }
.cb-btn:active { transform: translateY(0) scale(0.99); }

/* --- Newsletter widget --------------------------------------------------- */
.cb-news {
  width: 100%;
  max-width: 480px;
  padding: 30px 28px 34px;
  border: 1px solid var(--cb-line);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(10,16,32,0.62), rgba(6,10,22,0.72));
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 0 30px rgba(47,123,255,0.14), inset 0 0 24px rgba(47,123,255,0.06);
  animation: cb-pulse 5.5s ease-in-out infinite;
}
@keyframes cb-pulse {
  0%, 100% { box-shadow: 0 0 26px rgba(47,123,255,0.12), inset 0 0 22px rgba(47,123,255,0.05); }
  50%      { box-shadow: 0 0 40px rgba(109,182,255,0.28), inset 0 0 26px rgba(47,123,255,0.09); }
}
.cb-news-title {
  margin: 0 0 22px;
  font-family: "Decree", "Roboto", serif;
  font-weight: normal;
  font-size: clamp(1.55rem, 3.4vw, 2.15rem);
  line-height: 1.15;
  color: var(--cb-frost);
  text-shadow: 0 0 18px rgba(109,182,255,0.45);
  display: inline-block;
  transform: scaleY(var(--cb-decree-scale-y));  /* 90% height / 100% width */
  transform-origin: center;
}
.cb-news-intro {
  margin: -10px 0 20px;
  color: var(--cb-mist);
  font-size: 0.95rem;
  line-height: 1.6;
}
.cb-news-form { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.cb-email {
  width: 100%;
  max-width: 360px;
  padding: 13px 16px;
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  font-size: 1rem;
  color: var(--cb-frost);
  text-align: center;
  background: rgba(4, 8, 18, 0.7);
  border: 1px solid var(--cb-line);
  border-radius: 4px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.cb-email::placeholder { color: var(--cb-mist); opacity: 0.85; }
.cb-email:focus {
  border-color: var(--cb-glow);
  box-shadow: 0 0 0 1px var(--cb-glow), 0 0 18px rgba(109,182,255,0.4);
}

/* --- Footer (email + imprint link) -------------------------------------- */
.cb-footer {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 8px 24px 44px;
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  font-size: 0.95rem;
}
.cb-footer a {
  color: var(--cb-mist);
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: color 0.2s ease, text-shadow 0.2s ease;
}
.cb-footer a:hover, .cb-footer a:focus-visible {
  color: var(--cb-glow);
  text-shadow: 0 0 12px rgba(109,182,255,0.5);
  outline: none;
}
.cb-footer .cb-legal-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 12px;
  font-size: 0.88rem;
}
.cb-footer .cb-legal-links .cb-sep { color: var(--cb-line); }

/* --- Imprint / legal page ----------------------------------------------- */
.cb-page {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  padding: 132px 24px 96px;
}
.cb-page-title {
  margin: 0 0 30px;
  text-align: center;
  color: var(--cb-frost);
}
.cb-page-title span {   /* inner span carries the squash; block stays centered */
  display: inline-block;
  font-family: "Decree", "Roboto", serif;
  font-weight: normal;
  font-size: clamp(2rem, 6vw, 3.2rem);
  line-height: 1.1;
  text-shadow: 0 0 20px rgba(109,182,255,0.45);
  transform: scaleY(var(--cb-decree-scale-y));
  transform-origin: center;
}
.cb-legal {
  text-align: left;
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.8;
  color: var(--cb-frost);
}
.cb-legal p { margin: 0 0 16px; }
.cb-legal ul { margin: 0 0 16px; padding-left: 20px; }
.cb-legal li { margin-bottom: 6px; }
.cb-legal h2 {
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cb-glow);
  margin: 30px 0 10px;
}
.cb-legal a { color: var(--cb-glow); text-decoration: none; }
.cb-legal a:hover { text-decoration: underline; }
.cb-legal .cb-ph { color: var(--cb-mist); }   /* [placeholder] tint */
.cb-legal .cb-note {
  margin-top: 30px;
  padding: 14px 16px;
  border: 1px dashed var(--cb-line);
  border-radius: 6px;
  font-size: 0.9rem;
  color: var(--cb-mist);
}

/* --- Screenshot gallery (2 rows x 5) ------------------------------------ */
.cb-gallery {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.cb-shot {
  padding: 0;
  border: 1px solid var(--cb-line);
  border-radius: 4px;
  background: rgba(6, 10, 22, 0.55);
  overflow: hidden;
  cursor: pointer;
  aspect-ratio: 16 / 9;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.cb-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cb-shot:hover, .cb-shot:focus-visible {
  transform: translateY(-2px);
  border-color: var(--cb-glow);
  box-shadow: 0 0 16px rgba(109, 182, 255, 0.5);
  outline: none;
}

/* --- Lightbox (click a thumbnail to enlarge) ---------------------------- */
.cb-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 4vmin;
  background: rgba(4, 7, 14, 0.92);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.cb-lightbox.is-open { display: flex; }
.cb-lb-img {
  max-width: 92vw;
  max-height: 84vh;
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgba(4, 7, 14, 0.7), 0 0 46px rgba(47, 123, 255, 0.35);
}
.cb-lb-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  line-height: 1;
  color: var(--cb-frost);
  background: rgba(10, 16, 32, 0.55);
  border: 1px solid var(--cb-line);
  border-radius: 50%;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.cb-lb-btn:hover, .cb-lb-btn:focus-visible {
  color: var(--cb-glow);
  border-color: var(--cb-glow);
  background: rgba(10, 16, 32, 0.85);
  outline: none;
}
.cb-lb-prev  { left: 3vmin; }
.cb-lb-next  { right: 3vmin; }
.cb-lb-close { top: 3vmin; right: 3vmin; transform: none; width: 46px; height: 46px; font-size: 1.6rem; }
.cb-lb-count {
  position: absolute;
  bottom: 3vmin;
  left: 50%;
  transform: translateX(-50%);
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  color: var(--cb-mist);
}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 560px) {
  .cb-gallery { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .cb-lb-btn { width: 44px; height: 44px; font-size: 1.6rem; }
  .cb-lb-prev { left: 2vmin; }
  .cb-lb-next { right: 2vmin; }
  .cb-main { padding: 92px 18px 40px; gap: 32px; }
  .cb-home { position: absolute; top: 14px; left: 16px; }
  .cb-home img { width: 128px; }         /* still >2x the original 60px */
  .cb-logo { width: 400px; margin-bottom: -14px; }
  .cb-news { padding: 26px 20px 30px; }
  .cb-page { padding: 116px 18px 72px; }
}

/* --- Accessibility: honour reduced-motion ------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cb-news { animation: none; }
  .cb-btn, .cb-home, .cb-toast { transition: none; }
  /* Swap the autoplaying video for a static frame (also skips the video
     download entirely — the CSS image below only loads in this mode). */
  .cb-bg { display: none; }
  .cb-landing { background: var(--cb-void) url("video/bg-still.jpg") center / cover no-repeat fixed; }
}

/* =========================================================================
   Site additions: Steam widget + form message (index), press kit (press.html)
   ========================================================================= */

/* --- Steam widget (index) ------------------------------------------------- */
.cb-steam-widget {
  width: 100%;
  max-width: 646px;             /* Steam's native widget width */
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  overflow: hidden;
  background: rgba(6, 10, 22, 0.55);
  box-shadow: 0 0 0 1px rgba(5,7,14,0.6), 0 0 34px rgba(47,123,255,0.18);
  line-height: 0;
}
.cb-steam-widget iframe {
  width: 646px;
  max-width: 100%;
  /* Crop to the actual content: the bottom of Steam's 190px frame is an empty
     dark strip until a short description is set in Steamworks (then: 190px). */
  height: 136px;
  border: 0;
  display: block;
}

/* --- Newsletter feedback toast -------------------------------------------- */
.cb-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%) translateY(16px);
  z-index: 200;
  max-width: min(92vw, 420px);
  padding: 14px 20px;
  background: rgba(10,16,32,0.92);
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  color: var(--cb-frost);
  font-family: "Roboto", sans-serif;
  font-weight: 300;
  font-size: 0.92rem;
  line-height: 1.5;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  box-shadow: 0 0 30px rgba(47,123,255,0.25);
  cursor: pointer;
}
.cb-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.cb-toast.error { border-color: #e08a8a; }
.cb-btn:disabled { opacity: 0.55; cursor: default; transform: none; }

/* --- Press kit page (press.html) ------------------------------------------- */
.cb-press {
  max-width: 760px;
  text-align: left;
}
.cb-press-head { text-align: center; }
.cb-press-head .cb-logo { margin: 0 auto 12px; display: block; }
.cb-press-pitch {
  margin: 0 0 24px;
  font-size: clamp(1rem, 1.1vw + 0.85rem, 1.18rem);
  line-height: 1.7;
  color: var(--cb-frost);
  text-shadow: 0 1px 14px rgba(5,7,14,0.85);
}
.cb-press-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.cb-press-btn {
  display: inline-block;
  padding: 12px 22px;
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  background: rgba(10, 16, 32, 0.6);
  color: var(--cb-frost);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.cb-press-btn:hover, .cb-press-btn:focus-visible {
  border-color: var(--cb-glow);
  box-shadow: 0 0 18px rgba(109,182,255,0.35);
  transform: translateY(-2px);
  outline: none;
}

.cb-press-section { margin-top: 52px; }
.cb-press-section > h2 {
  margin: 0 0 20px;
  text-align: center;
}
.cb-press-section > h2 > span {
  display: inline-block;
  font-family: "Decree", "Roboto", serif;
  font-weight: normal;
  font-size: clamp(1.5rem, 3.2vw, 2.1rem);
  line-height: 1.15;
  color: var(--cb-frost);
  text-shadow: 0 0 18px rgba(109,182,255,0.45);
  transform: scaleY(var(--cb-decree-scale-y));
  transform-origin: center;
}
.cb-press-section p { line-height: 1.8; }

/* Factsheet */
.cb-facts { margin: 0; border-top: 1px solid var(--cb-line); }
.cb-facts > div {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 6px 16px;
  padding: 10px 2px;
  border-bottom: 1px solid rgba(120,185,255,0.18);
}
.cb-facts dt {
  color: var(--cb-glow);
  font-weight: 500;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.cb-facts dd { margin: 0; }
.cb-facts a { color: var(--cb-glow); text-decoration: none; }
.cb-facts a:hover { text-decoration: underline; }

/* Feature bullets */
.cb-press ul.cb-features { margin: 0; padding-left: 20px; }
.cb-press ul.cb-features li { margin-bottom: 8px; line-height: 1.7; }

/* Asset download grid (logos / key art) */
.cb-asset-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.cb-asset {
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  background: rgba(6, 10, 22, 0.55);
  padding: 14px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}
.cb-asset img { max-width: 100%; height: auto; display: block; }
.cb-asset a { color: var(--cb-glow); text-decoration: none; font-size: 0.85rem; letter-spacing: 0.06em; }
.cb-asset a:hover { text-decoration: underline; }
.cb-asset .cb-asset-name {
  font-size: 0.78rem;
  color: var(--cb-mist);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Quotes */
.cb-quote {
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  background: rgba(6, 10, 22, 0.55);
  padding: 18px 20px;
  margin-bottom: 12px;
}
.cb-quote blockquote { margin: 0 0 8px; font-size: 1.05rem; line-height: 1.7; }
.cb-quote cite { color: var(--cb-mist); font-style: normal; font-size: 0.85rem; letter-spacing: 0.06em; }

/* Team */
.cb-team { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.cb-team-card {
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  background: rgba(6, 10, 22, 0.55);
  padding: 16px 18px;
}
.cb-team-card h3 { margin: 0 0 4px; font-weight: 500; font-size: 1rem; color: var(--cb-frost); }
.cb-team-card .cb-role {
  margin: 0 0 8px;
  color: var(--cb-glow);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.cb-team-card p { margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--cb-mist); }

@media (max-width: 560px) {
  .cb-facts > div { grid-template-columns: 1fr; gap: 2px; }
  .cb-asset-grid { grid-template-columns: repeat(2, 1fr); }
  .cb-team { grid-template-columns: 1fr; }
}
