:root {
  --page: #f7f4eb;
  --ink: #14201b;
  --muted: #627067;
  --line: rgba(20, 32, 27, 0.14);
  --line-strong: rgba(20, 32, 27, 0.28);
  --white: #ffffff;
  --radius: 8px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: var(--page);
  font-family: "Atkinson Hyperlegible", "Avenir Next", sans-serif;
}

a {
  color: inherit;
}

button {
  font: inherit;
  cursor: pointer;
}

h1,
h2,
p {
  margin: 0;
}

h1,
h2,
.brand {
  font-family: "Fraunces", Georgia, serif;
  letter-spacing: 0;
}

.background-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 28px;
  border-bottom: 1px solid var(--line);
  background: rgba(247, 244, 235, 0.84);
  backdrop-filter: blur(16px);
}

.brand {
  font-size: 1.7rem;
  font-weight: 600;
  text-decoration: none;
}

.background-header nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.background-header nav a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 9px 12px;
  background: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.background-header nav a[aria-current="page"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.intro {
  display: grid;
  gap: 18px;
  max-width: 920px;
  padding: 54px 28px 32px;
}

.eyebrow {
  color: #557a65;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.intro h1 {
  max-width: 760px;
  font-size: 4.8rem;
  font-weight: 600;
  line-height: 0.92;
}

.intro p:last-child {
  color: var(--muted);
  line-height: 1.75;
}

.intro p:last-child {
  max-width: 690px;
  font-size: 1.1rem;
}

.background-lab {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 0 28px 46px;
}

.theme-picker {
  display: grid;
  gap: 8px;
  align-content: start;
}

.theme-button {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 10px;
  background: rgba(255, 255, 255, 0.64);
  color: var(--ink);
  text-align: left;
}

.theme-button.active {
  border-color: var(--line-strong);
  background: var(--white);
  box-shadow: inset 4px 0 0 var(--active-color, #557a65);
}

.theme-button strong,
.theme-button small {
  display: block;
}

.theme-button strong {
  font-size: 0.94rem;
}

.theme-button small {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.35;
}

.swatch {
  width: 46px;
  height: 46px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.swatch-dino {
  background:
    radial-gradient(circle at 70% 32%, #74b788 0 11px, transparent 12px),
    linear-gradient(145deg, #f6e7a6 0 50%, #9ed7c2 50%);
}

.swatch-garden {
  background:
    radial-gradient(circle at 22% 24%, #d77f6f 0 6px, transparent 7px),
    radial-gradient(circle at 68% 66%, #f0c86a 0 7px, transparent 8px),
    linear-gradient(135deg, #dcebc8, #8ebc88);
}

.swatch-ocean {
  background:
    repeating-linear-gradient(160deg, rgba(255, 255, 255, 0.5) 0 6px, transparent 7px 18px),
    linear-gradient(135deg, #cfe8ea, #6da8b3);
}

.swatch-kitchen {
  background:
    linear-gradient(90deg, rgba(184, 80, 61, 0.18) 50%, transparent 50%),
    linear-gradient(rgba(184, 80, 61, 0.18) 50%, transparent 50%),
    #fff4df;
  background-size: 16px 16px;
}

.swatch-stars {
  background:
    radial-gradient(circle at 22% 28%, #f6e7a6 0 2px, transparent 3px),
    radial-gradient(circle at 72% 68%, #f6e7a6 0 2px, transparent 3px),
    linear-gradient(135deg, #182230, #425a72);
}

.swatch-library {
  background:
    linear-gradient(90deg, #b56652 0 2px, transparent 3px),
    repeating-linear-gradient(#fffaf0 0 8px, #eadfc9 9px 10px);
}

.swatch-quilt {
  background:
    linear-gradient(45deg, #8ba5a3 25%, transparent 25% 75%, #8ba5a3 75%),
    linear-gradient(45deg, #d58b72 25%, #f3d88f 25% 75%, #d58b72 75%);
  background-size: 22px 22px;
}

.swatch-prairie {
  background:
    linear-gradient(180deg, #bad7df 0 52%, #e7d08a 53% 70%, #9aa86d 71%);
}

.swatch-record {
  background:
    radial-gradient(circle, #efe8d8 0 12%, transparent 13%),
    repeating-radial-gradient(circle, #141414 0 3px, #2e2b27 4px 8px);
}

.swatch-snow {
  background:
    radial-gradient(circle at 28% 30%, #ffffff 0 4px, transparent 5px),
    radial-gradient(circle at 70% 65%, #ffffff 0 5px, transparent 6px),
    linear-gradient(135deg, #eaf2f3, #b9ced6);
}

.swatch-cranes {
  background:
    linear-gradient(135deg, transparent 48%, #d58c8c 49% 52%, transparent 53%),
    linear-gradient(45deg, #fff7f0 0 44%, #f0c7bd 45% 55%, #dbe5dc 56%);
}

.swatch-rain {
  background:
    repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.62) 0 2px, transparent 3px 10px),
    linear-gradient(135deg, #dce7e8, #6e8fa0);
}

.swatch-roadtrip {
  background:
    linear-gradient(30deg, transparent 42%, #d69053 43% 48%, transparent 49%),
    linear-gradient(120deg, transparent 36%, #557a73 37% 41%, transparent 42%),
    #f1dfb8;
}

.swatch-confetti {
  background:
    radial-gradient(circle at 24% 28%, #d95d73 0 4px, transparent 5px),
    radial-gradient(circle at 68% 30%, #4aaec2 0 4px, transparent 5px),
    radial-gradient(circle at 58% 70%, #e1a84e 0 5px, transparent 6px),
    #fff4d8;
}

.swatch-cabin {
  background:
    linear-gradient(90deg, rgba(255, 213, 127, 0.82) 0 12px, transparent 13px),
    repeating-linear-gradient(90deg, #79513a 0 8px, #8c5a3d 9px 16px);
}

.swatch-jazz {
  background:
    radial-gradient(circle at 28% 28%, #d8b35c 0 8px, transparent 9px),
    radial-gradient(circle at 78% 72%, #8d4a58 0 10px, transparent 11px),
    linear-gradient(135deg, #22192a, #493047);
}

.swatch-film {
  background:
    repeating-linear-gradient(90deg, #1f2422 0 6px, #efeadc 7px 14px),
    linear-gradient(#69706d, #b8b2a4);
}

.swatch-sunflower {
  background:
    radial-gradient(circle at 52% 48%, #4d3a20 0 7px, #d7ad37 8px 18px, transparent 19px),
    linear-gradient(145deg, #e9d98b, #86a15f);
}

.swatch-arcade {
  background:
    linear-gradient(90deg, rgba(73, 191, 208, 0.9) 0 4px, transparent 5px),
    linear-gradient(0deg, rgba(234, 88, 160, 0.78) 0 4px, transparent 5px),
    #1d1c35;
  background-size: 18px 18px;
}

.swatch-greenhouse {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.5) 0 2px, transparent 3px 18px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0 2px, transparent 3px 18px),
    linear-gradient(135deg, #1e4139, #75a66c);
}

.swatch-sunset {
  background:
    radial-gradient(circle at 70% 38%, #f2bd79 0 12px, transparent 13px),
    linear-gradient(180deg, #f7c4a1 0 48%, #8bb8bd 49% 68%, #426c7a 69%);
}

.swatch-mountains {
  background:
    linear-gradient(135deg, transparent 0 45%, #7d98a7 46% 60%, transparent 61%),
    linear-gradient(45deg, transparent 0 42%, #b7c8cc 43% 60%, transparent 61%),
    linear-gradient(180deg, #e7eeee, #aebfc5);
}

.journey-preview {
  --theme-ink: #183329;
  --theme-muted: #52655b;
  --theme-card: rgba(255, 255, 255, 0.78);
  --theme-accent: #74b788;
  position: relative;
  position: sticky;
  top: 18px;
  height: min(780px, calc(100vh - 36px));
  min-height: 520px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--theme-ink);
  background: #f6e7a6;
}

.background-art {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.art-piece,
.dino-cloud,
.dino-friend {
  position: absolute;
}

.dino-cloud {
  display: none;
  overflow: visible;
  fill: #fff5cf;
  opacity: 0.86;
  pointer-events: none;
  filter: drop-shadow(0 10px 14px rgba(107, 141, 128, 0.12));
  transform-origin: center;
}

.dino-friend {
  right: 8%;
  bottom: 8%;
  width: min(260px, 34vw);
  overflow: visible;
  filter: drop-shadow(0 18px 24px rgba(24, 51, 41, 0.18));
  transform-origin: center bottom;
}

.dino-friend-secondary {
  right: auto;
  left: 9%;
  bottom: 12%;
  width: min(210px, 25vw);
  filter: drop-shadow(0 15px 20px rgba(24, 51, 41, 0.14));
}

.journey-preview:not(.theme-dino) .dino-friend {
  display: none;
}

.theme-dino {
  --theme-ink: #183329;
  --theme-muted: #52655b;
  --theme-card: rgba(255, 253, 229, 0.78);
  --theme-accent: #74b788;
  background:
    radial-gradient(circle at 14% 22%, #f4c46e 0 34px, transparent 35px),
    linear-gradient(180deg, #b9e5dd 0 60%, #f6e7a6 61%);
}

.theme-dino .piece-one {
  left: -6%;
  bottom: -18%;
  width: 54%;
  height: 32%;
  border-radius: 50% 50% 0 0;
  background: #74b788;
}

.theme-dino .piece-two {
  right: -5%;
  bottom: -14%;
  width: 48%;
  height: 28%;
  border-radius: 50% 50% 0 0;
  background: #8bcf97;
}

.theme-dino .piece-three {
  display: none;
}

.theme-dino .dino-cloud {
  display: block;
}

.theme-dino .dino-cloud-one {
  left: 35%;
  top: 18%;
  width: min(190px, 22vw);
  animation: dinoCloudFloatOne 30s ease-in-out infinite;
}

.theme-dino .dino-cloud-two {
  right: 14%;
  top: 12%;
  width: min(150px, 17vw);
  opacity: 0.76;
  animation: dinoCloudFloatTwo 34s ease-in-out infinite;
}

.theme-dino .dino-friend:not(.dino-friend-secondary) {
  animation: dinoSoftBob 6.8s ease-in-out infinite;
}

.theme-dino .dino-friend-secondary {
  animation: dinoTinyWiggle 7.6s ease-in-out infinite;
}

@keyframes dinoCloudFloatOne {
  0%,
  100% {
    transform: translate3d(-18px, 0, 0);
  }

  50% {
    transform: translate3d(22px, -3px, 0);
  }
}

@keyframes dinoCloudFloatTwo {
  0%,
  100% {
    transform: translate3d(16px, 0, 0);
  }

  50% {
    transform: translate3d(-20px, 2px, 0);
  }
}

@keyframes dinoSoftBob {
  0%,
  100% {
    transform: translate3d(-3px, 0, 0);
  }

  50% {
    transform: translate3d(5px, -7px, 0);
  }
}

@keyframes dinoTinyWiggle {
  0%,
  100% {
    transform: translate3d(4px, 0, 0) rotate(-0.3deg);
  }

  50% {
    transform: translate3d(-6px, -4px, 0) rotate(0.6deg);
  }
}

.theme-garden {
  --theme-ink: #1f3526;
  --theme-muted: #55705d;
  --theme-card: rgba(250, 255, 244, 0.78);
  --theme-accent: #d77f6f;
  background:
    radial-gradient(circle at 76% 18%, #f2c56e 0 36px, transparent 37px),
    linear-gradient(135deg, #edf7dd, #b9d7a4);
}

.theme-garden .piece-one {
  left: 9%;
  bottom: 0;
  width: 18px;
  height: 72%;
  background: #729d73;
}

.theme-garden .piece-two,
.theme-garden .piece-three {
  width: 160px;
  height: 78px;
  border-radius: 90px 90px 0 90px;
  background: rgba(81, 132, 83, 0.34);
}

.theme-garden .piece-two {
  left: 11%;
  top: 26%;
  transform: rotate(-24deg);
}

.theme-garden .piece-three {
  right: 8%;
  bottom: 16%;
  transform: rotate(28deg);
}

.theme-garden .dino-friend {
  display: none;
}

.theme-ocean {
  --theme-ink: #16333b;
  --theme-muted: #4f6c73;
  --theme-card: rgba(246, 253, 252, 0.78);
  --theme-accent: #5f9fab;
  background:
    repeating-linear-gradient(172deg, rgba(255, 255, 255, 0.5) 0 8px, transparent 9px 36px),
    linear-gradient(145deg, #d5edef, #6fa9b5);
}

.theme-ocean .piece-one,
.theme-ocean .piece-two,
.theme-ocean .piece-three {
  height: 120px;
  border: 2px solid rgba(255, 255, 255, 0.72);
  border-color: rgba(255, 255, 255, 0.72) transparent transparent transparent;
  border-radius: 50%;
}

.theme-ocean .piece-one {
  left: -8%;
  right: 30%;
  bottom: 12%;
}

.theme-ocean .piece-two {
  left: 20%;
  right: -12%;
  bottom: 22%;
}

.theme-ocean .piece-three {
  left: 0;
  right: 0;
  bottom: 2%;
}

.theme-ocean .dino-friend {
  display: none;
}

.theme-kitchen {
  --theme-ink: #442c22;
  --theme-muted: #7a6254;
  --theme-card: rgba(255, 250, 239, 0.84);
  --theme-accent: #b8503d;
  background:
    linear-gradient(90deg, rgba(184, 80, 61, 0.12) 50%, transparent 50%),
    linear-gradient(rgba(184, 80, 61, 0.12) 50%, transparent 50%),
    #fff0d7;
  background-size: 48px 48px;
}

.theme-kitchen .piece-one,
.theme-kitchen .piece-two,
.theme-kitchen .piece-three {
  width: 190px;
  height: 128px;
  border: 1px solid rgba(68, 44, 34, 0.16);
  border-radius: var(--radius);
  background: rgba(255, 253, 246, 0.78);
  transform: rotate(-5deg);
}

.theme-kitchen .piece-one {
  right: 8%;
  top: 10%;
}

.theme-kitchen .piece-two {
  right: 20%;
  bottom: 14%;
  transform: rotate(7deg);
}

.theme-kitchen .piece-three {
  left: 10%;
  bottom: 10%;
  transform: rotate(-9deg);
}

.theme-kitchen .dino-friend {
  display: none;
}

.theme-stars {
  --theme-ink: #f7f1dd;
  --theme-muted: #ccd7d3;
  --theme-card: rgba(24, 34, 48, 0.72);
  --theme-accent: #e3c66a;
  background:
    radial-gradient(circle at 14% 22%, #f7f1dd 0 2px, transparent 3px),
    radial-gradient(circle at 76% 18%, #f7f1dd 0 2px, transparent 3px),
    radial-gradient(circle at 44% 64%, #f7f1dd 0 2px, transparent 3px),
    linear-gradient(145deg, #172332, #41606e);
}

.theme-stars .piece-one,
.theme-stars .piece-two,
.theme-stars .piece-three {
  height: 1px;
  background: rgba(247, 241, 221, 0.36);
  transform-origin: left;
}

.theme-stars .piece-one {
  left: 14%;
  top: 23%;
  width: 64%;
  transform: rotate(14deg);
}

.theme-stars .piece-two {
  left: 42%;
  top: 64%;
  width: 34%;
  transform: rotate(-38deg);
}

.theme-stars .piece-three {
  left: 18%;
  top: 23%;
  width: 34%;
  transform: rotate(54deg);
}

.theme-stars .dino-friend {
  display: none;
}

.theme-library {
  --theme-ink: #2d251e;
  --theme-muted: #75685c;
  --theme-card: rgba(255, 253, 246, 0.84);
  --theme-accent: #b56652;
  background:
    linear-gradient(90deg, rgba(181, 102, 82, 0.54) 0 2px, transparent 3px),
    repeating-linear-gradient(#fffaf0 0 28px, #e7dcc6 29px 30px);
  background-size: 100% 100%, 100% 30px;
}

.theme-library .piece-one {
  left: 8%;
  top: 12%;
  width: 90px;
  height: 118px;
  border: 2px solid rgba(45, 37, 30, 0.26);
  border-radius: 50%;
}

.theme-library .piece-two {
  right: 10%;
  top: 12%;
  width: 170px;
  height: 82px;
  border: 1px solid rgba(45, 37, 30, 0.18);
  border-radius: var(--radius);
}

.theme-library .piece-three {
  right: 11%;
  top: 15%;
  width: 148px;
  height: 2px;
  background: rgba(45, 37, 30, 0.18);
  box-shadow: 0 18px 0 rgba(45, 37, 30, 0.18), 0 36px 0 rgba(45, 37, 30, 0.18);
}

.theme-library .dino-friend {
  display: none;
}

.theme-quilt {
  --theme-ink: #302520;
  --theme-muted: #685a53;
  --theme-card: rgba(255, 250, 242, 0.82);
  --theme-accent: #8ba5a3;
  background:
    linear-gradient(45deg, rgba(139, 165, 163, 0.82) 25%, transparent 25% 75%, rgba(139, 165, 163, 0.82) 75%),
    linear-gradient(45deg, rgba(213, 139, 114, 0.76) 25%, rgba(243, 216, 143, 0.72) 25% 75%, rgba(213, 139, 114, 0.76) 75%);
  background-size: 110px 110px;
}

.theme-quilt .piece-one,
.theme-quilt .piece-two,
.theme-quilt .piece-three {
  display: none;
}

.theme-quilt .dino-friend {
  display: none;
}

.theme-prairie {
  --theme-ink: #273326;
  --theme-muted: #657257;
  --theme-card: rgba(255, 253, 238, 0.8);
  --theme-accent: #d8bd70;
  background:
    linear-gradient(180deg, #bedce4 0 42%, #f3df9c 43% 62%, #9da969 63%);
}

.theme-prairie .piece-one {
  left: -8%;
  right: -8%;
  bottom: 24%;
  height: 2px;
  background: rgba(39, 51, 38, 0.24);
}

.theme-prairie .piece-two,
.theme-prairie .piece-three {
  bottom: 0;
  width: 2px;
  height: 28%;
  background: rgba(90, 96, 45, 0.42);
  transform-origin: bottom;
}

.theme-prairie .piece-two {
  left: 72%;
  transform: rotate(-12deg);
  box-shadow: 34px 0 0 rgba(90, 96, 45, 0.42), 70px 0 0 rgba(90, 96, 45, 0.42);
}

.theme-prairie .piece-three {
  left: 84%;
  transform: rotate(10deg);
}

.theme-prairie .dino-friend {
  display: none;
}

.theme-record {
  --theme-ink: #f6f0e4;
  --theme-muted: #d4c9bb;
  --theme-card: rgba(31, 29, 27, 0.74);
  --theme-accent: #c98a5c;
  background:
    radial-gradient(circle at 72% 50%, #e2c06c 0 5%, transparent 6%),
    repeating-radial-gradient(circle at 72% 50%, #111 0 4px, #2c2925 5px 12px),
    linear-gradient(135deg, #2d2925, #151515);
}

.theme-record .piece-one,
.theme-record .piece-two,
.theme-record .piece-three {
  left: 10%;
  right: 58%;
  height: 1px;
  background: rgba(246, 240, 228, 0.22);
}

.theme-record .piece-one {
  top: 68%;
}

.theme-record .piece-two {
  top: 72%;
}

.theme-record .piece-three {
  top: 76%;
}

.theme-record .dino-friend {
  display: none;
}

.theme-snow {
  --theme-ink: #24323c;
  --theme-muted: #64727a;
  --theme-card: rgba(255, 255, 255, 0.78);
  --theme-accent: #8eaeb8;
  background:
    radial-gradient(circle at 26% 22%, rgba(255, 255, 255, 0.95) 0 6px, transparent 7px),
    radial-gradient(circle at 72% 30%, rgba(255, 255, 255, 0.9) 0 5px, transparent 6px),
    radial-gradient(circle at 58% 78%, rgba(255, 255, 255, 0.92) 0 7px, transparent 8px),
    linear-gradient(145deg, #edf4f5, #b8d0d8);
}

.theme-snow .piece-one {
  left: 64%;
  top: 8%;
  width: 120px;
  height: 78%;
  border-left: 1px solid rgba(36, 50, 60, 0.16);
  border-right: 1px solid rgba(36, 50, 60, 0.16);
}

.theme-snow .piece-two {
  left: 64%;
  top: 42%;
  width: 120px;
  height: 1px;
  background: rgba(36, 50, 60, 0.16);
}

.theme-snow .piece-three {
  display: none;
}

.theme-snow .dino-friend {
  display: none;
}

.theme-cranes {
  --theme-ink: #3a2529;
  --theme-muted: #725c60;
  --theme-card: rgba(255, 248, 244, 0.78);
  --theme-accent: #d58c8c;
  background:
    radial-gradient(circle at 84% 16%, rgba(255, 242, 229, 0.82) 0 76px, transparent 77px),
    radial-gradient(circle at 12% 88%, rgba(213, 140, 140, 0.12) 0 120px, transparent 121px),
    linear-gradient(145deg, #fff9f2, #dfe9df);
}

.theme-cranes .piece-one,
.theme-cranes .piece-two,
.theme-cranes .piece-three {
  display: block;
  width: 150px;
  height: 92px;
  opacity: 0.74;
  background:
    linear-gradient(148deg, transparent 0 45%, rgba(88, 64, 68, 0.12) 46% 48%, transparent 49%),
    linear-gradient(28deg, transparent 0 46%, rgba(88, 64, 68, 0.1) 47% 49%, transparent 50%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.92) 0 38%, rgba(242, 214, 205, 0.82) 39% 58%, rgba(255, 255, 255, 0.82) 59%);
  clip-path: polygon(2% 52%, 36% 18%, 52% 48%, 76% 6%, 67% 48%, 98% 55%, 64% 68%, 56% 92%, 46% 70%, 15% 76%);
  filter: drop-shadow(0 12px 18px rgba(58, 37, 41, 0.08));
}

.theme-cranes .piece-one {
  left: 5%;
  top: 9%;
  transform: rotate(-8deg);
}

.theme-cranes .piece-two {
  right: 5%;
  top: 24%;
  transform: scale(0.7) rotate(12deg);
}

.theme-cranes .piece-three {
  left: 8%;
  bottom: 12%;
  transform: scale(0.6) rotate(6deg);
}

.theme-rain {
  --theme-ink: #1d3440;
  --theme-muted: #546b75;
  --theme-card: rgba(242, 249, 250, 0.76);
  --theme-accent: #6e8fa0;
  background:
    repeating-linear-gradient(105deg, rgba(255, 255, 255, 0.34) 0 1px, transparent 2px 22px),
    linear-gradient(150deg, #dfe9e9, #7795a5);
}

.theme-rain .piece-one {
  display: block;
  right: 7%;
  top: 8%;
  width: 210px;
  height: 78%;
  border: 1px solid rgba(29, 52, 64, 0.22);
  border-radius: var(--radius);
  background:
    linear-gradient(90deg, transparent 49%, rgba(29, 52, 64, 0.16) 50%, transparent 51%),
    linear-gradient(180deg, transparent 49%, rgba(29, 52, 64, 0.16) 50%, transparent 51%),
    rgba(255, 255, 255, 0.16);
}

.theme-rain .piece-two,
.theme-rain .piece-three {
  display: block;
  width: 5px;
  height: 62px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.5);
  transform: rotate(18deg);
}

.theme-rain .piece-two {
  left: 11%;
  top: 18%;
  box-shadow: 42px 120px 0 rgba(255, 255, 255, 0.42), 92px 40px 0 rgba(255, 255, 255, 0.38);
}

.theme-rain .piece-three {
  left: 20%;
  bottom: 12%;
  box-shadow: 58px -90px 0 rgba(255, 255, 255, 0.36);
}

.theme-roadtrip {
  --theme-ink: #3b3025;
  --theme-muted: #715d4c;
  --theme-card: rgba(255, 246, 224, 0.78);
  --theme-accent: #d69053;
  background:
    linear-gradient(30deg, transparent 0 47%, rgba(214, 144, 83, 0.34) 48% 50%, transparent 51%),
    linear-gradient(120deg, transparent 0 38%, rgba(85, 122, 115, 0.28) 39% 41%, transparent 42%),
    radial-gradient(circle at 15% 78%, rgba(85, 122, 115, 0.2) 0 70px, transparent 71px),
    #f1dfb8;
}

.theme-roadtrip .piece-one,
.theme-roadtrip .piece-two,
.theme-roadtrip .piece-three {
  display: block;
  border-radius: 999px;
}

.theme-roadtrip .piece-one {
  left: 7%;
  top: 16%;
  width: 16px;
  height: 16px;
  background: rgba(214, 144, 83, 0.82);
  box-shadow: 160px 130px 0 rgba(85, 122, 115, 0.65), 360px 46px 0 rgba(183, 95, 82, 0.58);
}

.theme-roadtrip .piece-two {
  left: 6%;
  top: 24%;
  width: 26%;
  height: 2px;
  background: rgba(59, 48, 37, 0.16);
  transform: rotate(22deg);
}

.theme-roadtrip .piece-three {
  right: 7%;
  bottom: 8%;
  width: 118px;
  height: 82px;
  border: 1px solid rgba(59, 48, 37, 0.18);
  background: rgba(255, 246, 224, 0.56);
  border-radius: var(--radius);
}

.theme-confetti {
  --theme-ink: #392d2f;
  --theme-muted: #746263;
  --theme-card: rgba(255, 248, 230, 0.78);
  --theme-accent: #e1a84e;
  background:
    radial-gradient(circle at 10% 18%, rgba(217, 93, 115, 0.62) 0 7px, transparent 8px),
    radial-gradient(circle at 88% 20%, rgba(74, 174, 194, 0.58) 0 8px, transparent 9px),
    radial-gradient(circle at 86% 82%, rgba(225, 168, 78, 0.58) 0 10px, transparent 11px),
    radial-gradient(circle at 12% 78%, rgba(122, 166, 109, 0.5) 0 7px, transparent 8px),
    #fff4d8;
}

.theme-confetti .piece-one,
.theme-confetti .piece-two,
.theme-confetti .piece-three {
  display: block;
  width: 10px;
  height: 58px;
  border-radius: 999px;
  opacity: 0.7;
}

.theme-confetti .piece-one {
  left: 9%;
  top: 34%;
  background: #d95d73;
  transform: rotate(-28deg);
}

.theme-confetti .piece-two {
  right: 9%;
  top: 38%;
  background: #4aaec2;
  transform: rotate(24deg);
}

.theme-confetti .piece-three {
  left: 84%;
  bottom: 16%;
  background: #e1a84e;
  transform: rotate(60deg);
}

.theme-cabin {
  --theme-ink: #2f211a;
  --theme-muted: #806756;
  --theme-card: rgba(255, 240, 215, 0.78);
  --theme-accent: #8c5a3d;
  background:
    linear-gradient(180deg, #304352 0 38%, #6e593f 39% 41%, transparent 42%),
    repeating-linear-gradient(90deg, #744c36 0 18px, #8c5a3d 19px 36px);
}

.theme-cabin .piece-one {
  display: block;
  left: 0;
  right: 0;
  top: 23%;
  height: 18%;
  background:
    linear-gradient(145deg, transparent 0 36%, #1f2f36 37% 39%, transparent 40%),
    linear-gradient(25deg, transparent 0 58%, #1f2f36 59% 61%, transparent 62%);
}

.theme-cabin .piece-two {
  display: block;
  right: 8%;
  bottom: 14%;
  width: 126px;
  height: 92px;
  border: 10px solid #5a3929;
  border-radius: var(--radius);
  background: #ffd57f;
  box-shadow: 0 0 34px rgba(255, 213, 127, 0.42);
}

.theme-cabin .piece-three {
  display: block;
  left: 7%;
  bottom: 10%;
  width: 190px;
  height: 2px;
  background: rgba(255, 225, 168, 0.18);
  box-shadow: 0 18px 0 rgba(255, 225, 168, 0.12), 0 36px 0 rgba(255, 225, 168, 0.08);
}

.theme-jazz {
  --theme-ink: #f8ecd7;
  --theme-muted: #d5c1b2;
  --theme-card: rgba(35, 24, 38, 0.74);
  --theme-accent: #d8b35c;
  background:
    radial-gradient(circle at 16% 18%, rgba(216, 179, 92, 0.58) 0 34px, transparent 35px),
    radial-gradient(circle at 86% 84%, rgba(141, 74, 88, 0.58) 0 76px, transparent 77px),
    linear-gradient(145deg, #22192a, #493047);
}

.theme-jazz .piece-one,
.theme-jazz .piece-two {
  display: block;
  top: 12%;
  width: 160px;
  height: 78%;
  background: linear-gradient(180deg, rgba(255, 230, 160, 0.2), transparent);
  clip-path: polygon(45% 0, 55% 0, 100% 100%, 0 100%);
}

.theme-jazz .piece-one {
  left: 10%;
  transform: rotate(12deg);
}

.theme-jazz .piece-two {
  right: 8%;
  transform: rotate(-14deg);
}

.theme-jazz .piece-three {
  display: block;
  right: 7%;
  top: 12%;
  width: 132px;
  height: 132px;
  border: 1px solid rgba(248, 236, 215, 0.18);
  border-radius: 50%;
}

.theme-film {
  --theme-ink: #1f2422;
  --theme-muted: #5f6661;
  --theme-card: rgba(239, 234, 220, 0.78);
  --theme-accent: #69706d;
  background:
    repeating-linear-gradient(90deg, rgba(31, 36, 34, 0.3) 0 18px, transparent 19px 92px),
    linear-gradient(145deg, #8d928b, #d7d0c0);
}

.theme-film .piece-one,
.theme-film .piece-two,
.theme-film .piece-three {
  display: block;
  width: 150px;
  height: 108px;
  border: 7px solid rgba(31, 36, 34, 0.46);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent),
    rgba(239, 234, 220, 0.44);
}

.theme-film .piece-one {
  left: 6%;
  top: 10%;
}

.theme-film .piece-two {
  right: 7%;
  top: 16%;
}

.theme-film .piece-three {
  left: 8%;
  bottom: 8%;
}

.theme-sunflower {
  --theme-ink: #302915;
  --theme-muted: #6f663f;
  --theme-card: rgba(255, 249, 215, 0.78);
  --theme-accent: #d7ad37;
  background:
    linear-gradient(180deg, #cfe3d0 0 47%, #e9d98b 48% 61%, #86a15f 62%);
}

.theme-sunflower .piece-one,
.theme-sunflower .piece-two,
.theme-sunflower .piece-three {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background:
    radial-gradient(circle, #4d3a20 0 13px, transparent 14px),
    repeating-conic-gradient(#d7ad37 0 12deg, #f1ce58 13deg 24deg);
}

.theme-sunflower .piece-one::before,
.theme-sunflower .piece-two::before,
.theme-sunflower .piece-three::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 90%;
  width: 5px;
  height: 190px;
  border-radius: 999px;
  background: rgba(75, 111, 53, 0.74);
  transform: translateX(-50%);
}

.theme-sunflower .piece-one {
  left: 7%;
  bottom: 22%;
}

.theme-sunflower .piece-two {
  right: 8%;
  bottom: 28%;
  transform: scale(0.75);
}

.theme-sunflower .piece-three {
  left: 18%;
  bottom: 4%;
  transform: scale(0.55);
}

.theme-arcade {
  --theme-ink: #effdff;
  --theme-muted: #b7e9ee;
  --theme-card: rgba(29, 28, 53, 0.76);
  --theme-accent: #49bfd0;
  background:
    linear-gradient(90deg, rgba(73, 191, 208, 0.3) 0 2px, transparent 3px),
    linear-gradient(0deg, rgba(234, 88, 160, 0.26) 0 2px, transparent 3px),
    radial-gradient(circle at 75% 22%, rgba(234, 88, 160, 0.5), transparent 20%),
    #1d1c35;
  background-size: 44px 44px, 44px 44px, auto, auto;
}

.theme-arcade .piece-one,
.theme-arcade .piece-two,
.theme-arcade .piece-three {
  display: block;
  border: 1px solid currentColor;
  color: #49bfd0;
  box-shadow: 0 0 16px currentColor;
  opacity: 0.72;
}

.theme-arcade .piece-one {
  left: 7%;
  top: 14%;
  width: 112px;
  height: 112px;
  border-radius: 50%;
}

.theme-arcade .piece-two {
  right: 8%;
  top: 18%;
  width: 126px;
  height: 72px;
  color: #ea58a0;
}

.theme-arcade .piece-three {
  right: 10%;
  bottom: 12%;
  width: 148px;
  height: 62px;
  color: #eac75f;
  transform: skewX(-12deg);
}

.theme-greenhouse {
  --theme-ink: #edf7df;
  --theme-muted: #c8d6bd;
  --theme-card: rgba(30, 65, 57, 0.7);
  --theme-accent: #75a66c;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.22) 0 2px, transparent 3px 120px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22) 0 2px, transparent 3px 120px),
    radial-gradient(circle at 78% 18%, rgba(238, 247, 209, 0.68) 0 44px, transparent 45px),
    linear-gradient(145deg, #1e4139, #2d664c);
}

.theme-greenhouse .piece-one,
.theme-greenhouse .piece-two,
.theme-greenhouse .piece-three {
  display: block;
  width: 138px;
  height: 82px;
  border-radius: 90px 90px 0 90px;
  background: rgba(117, 166, 108, 0.38);
  border: 1px solid rgba(237, 247, 223, 0.18);
}

.theme-greenhouse .piece-one {
  left: 7%;
  bottom: 12%;
  transform: rotate(-26deg);
}

.theme-greenhouse .piece-two {
  right: 7%;
  bottom: 20%;
  transform: rotate(32deg);
}

.theme-greenhouse .piece-three {
  right: 11%;
  top: 12%;
  transform: scale(0.64) rotate(18deg);
}

.theme-sunset {
  --theme-ink: #342c2b;
  --theme-muted: #78635d;
  --theme-card: rgba(255, 246, 232, 0.78);
  --theme-accent: #e7a069;
  background:
    radial-gradient(circle at 72% 34%, rgba(248, 194, 119, 0.86) 0 72px, transparent 73px),
    linear-gradient(180deg, #f7c4a1 0 48%, #8bb8bd 49% 64%, #426c7a 65%);
}

.theme-sunset .piece-one,
.theme-sunset .piece-two,
.theme-sunset .piece-three {
  display: block;
  left: -8%;
  right: -8%;
  height: 96px;
  border: 2px solid rgba(255, 246, 232, 0.54);
  border-color: rgba(255, 246, 232, 0.54) transparent transparent transparent;
  border-radius: 50%;
}

.theme-sunset .piece-one {
  bottom: 24%;
}

.theme-sunset .piece-two {
  bottom: 16%;
  opacity: 0.62;
}

.theme-sunset .piece-three {
  bottom: 8%;
  opacity: 0.44;
}

.theme-mountains {
  --theme-ink: #26343a;
  --theme-muted: #64757c;
  --theme-card: rgba(250, 253, 250, 0.78);
  --theme-accent: #7d98a7;
  background:
    linear-gradient(180deg, #edf3f1 0 54%, #cddcdd 55% 70%, #9eb3b9 71%);
}

.theme-mountains .piece-one,
.theme-mountains .piece-two,
.theme-mountains .piece-three {
  display: block;
  left: -6%;
  right: -6%;
  bottom: 0;
  height: 42%;
  opacity: 0.88;
}

.theme-mountains .piece-one {
  background: #7d98a7;
  clip-path: polygon(0 100%, 18% 34%, 29% 64%, 42% 26%, 56% 66%, 72% 28%, 86% 60%, 100% 20%, 100% 100%);
}

.theme-mountains .piece-two {
  bottom: 8%;
  height: 32%;
  background: rgba(183, 200, 204, 0.86);
  clip-path: polygon(0 100%, 15% 50%, 28% 76%, 40% 38%, 52% 70%, 68% 42%, 83% 74%, 100% 44%, 100% 100%);
}

.theme-mountains .piece-three {
  left: 8%;
  right: 8%;
  bottom: 42%;
  height: 2px;
  border-radius: 999px;
  background: rgba(38, 52, 58, 0.08);
  box-shadow: 0 -34px 0 rgba(38, 52, 58, 0.05), 0 -68px 0 rgba(38, 52, 58, 0.035);
}

@media (prefers-reduced-motion: reduce) {
  .theme-dino .dino-cloud,
  .theme-dino .piece-three,
  .theme-dino .dino-friend {
    animation: none;
    transform: none;
  }
}

@media (max-width: 1040px) {
  .background-lab {
    grid-template-columns: 1fr;
  }

  .journey-preview {
    position: relative;
    top: auto;
    height: min(680px, 78vh);
    min-height: 520px;
  }

  .theme-picker {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .journey-preview {
    min-height: 700px;
  }
}

@media (max-width: 680px) {
  .background-header {
    align-items: flex-start;
    flex-direction: column;
    padding: 16px;
  }

  .background-header nav {
    justify-content: flex-start;
  }

  .intro,
  .background-lab {
    padding-left: 16px;
    padding-right: 16px;
  }

  .intro h1 {
    font-size: 3.2rem;
  }

  .theme-picker {
    grid-template-columns: 1fr;
  }

  .journey-preview {
    height: 70vh;
    min-height: 520px;
  }

  .dino-friend {
    width: 180px;
  }

  .dino-friend-secondary {
    left: 8%;
    bottom: 15%;
    width: 130px;
  }

  .theme-dino .dino-cloud-one {
    left: 30%;
    top: 17%;
    width: 132px;
  }

  .theme-dino .dino-cloud-two {
    right: 9%;
    top: 11%;
    width: 110px;
  }
}
