:root {
  --paper: #fbf8f4;
  --surface: #fffdf9;
  --ink: #493e38;
  --muted: #988b80;
  --line: #e9e0d7;
  --accent: #986d58;
  --accent-soft: #f1e2d8;
  --rose: #bb8498;
  --lavender: #a596bf;
  --green: #7d956e;
  --radius: 16px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font:
    14px/1.55 -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
  letter-spacing: 0.01em;
}
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  border: 0;
  background: none;
}
button:disabled {
  cursor: default;
  opacity: 0.4;
}
button:focus-visible,
a:focus-visible,
canvas:focus-visible {
  outline: 2px solid #b796ae;
  outline-offset: 4px;
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #d5b7c6;
  outline-offset: 1px;
}
a {
  color: inherit;
  text-decoration: none;
}
[hidden] {
  display: none !important;
}
.app-shell {
  display: flex;
  max-width: 1480px;
  min-height: 100vh;
  margin: 0 auto;
}
.sidebar {
  width: 205px;
  flex-shrink: 0;
  border-right: 1px solid var(--line);
  padding: 35px 20px;
  background: #f6f0e9;
  display: flex;
  flex-direction: column;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 8px;
  color: #705647;
  font-size: 20px;
  font-weight: 650;
  letter-spacing: -0.5px;
}
.brand-mark {
  font-size: 36px;
  font-weight: 400;
  color: #ac8067;
}
.brand-sub {
  display: block;
  font-size: 10px;
  font-weight: 400;
  color: #ad9685;
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.side-caption:empty {
  display: none;
}
.side-caption {
  height: 20px;
}
nav {
  display: grid;
  gap: 6px;
  margin-top: 48px;
}
nav button {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  text-align: left;
  font-size: 12px;
  color: #a08f80;
  border-radius: 10px;
  transition:
    background 0.15s,
    color 0.15s;
}
nav button.active {
  background: #ebddd0;
  color: #79543f;
  font-weight: 600;
}
nav button:hover {
  background: #efe6db;
}
nav button > span {
  width: 21px;
  height: 23px;
  display: grid;
  place-items: center;
  font-size: 21px;
}
nav svg {
  width: 19px;
  height: 19px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
nav b {
  font-weight: 500;
  background: #d9bbbd;
  color: #fff;
  font-size: 9px;
  min-width: 17px;
  height: 17px;
  text-align: center;
  line-height: 17px;
  border-radius: 10px;
  margin-left: auto;
}
.side-bottom {
  margin-top: auto;
  padding: 45px 9px 0;
}
.side-bottom p,
.side-bottom .pair-dots {
  display: none;
}
.side-bottom button {
  font-size: 11px;
  color: #a08b79;
  padding: 0;
}
.pair-dots {
  display: flex;
  align-items: center;
  gap: 0;
}
.pair-dots i {
  width: 20px;
  height: 20px;
  border: 2px solid #fff9f2;
  border-radius: 50%;
  background: #c1b09c;
  display: block;
}
.pair-dots i + i {
  margin-left: -5px;
  background: #b5a2c0;
}
main {
  flex: 1;
  min-width: 0;
  padding: 0 34px;
  max-width: 1250px;
}
header {
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  gap: 15px;
}
.breadcrumb {
  font-size: 11px;
  color: #b4a391;
}
.breadcrumb b {
  font-weight: 500;
  color: #9b8a7a;
}
.connection {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #e8dfd3;
  background: #faf4eb;
  border-radius: 20px;
  padding: 7px 12px;
  font-size: 10px;
  color: #a18d79;
  white-space: nowrap;
}
.connection > span:last-child {
  font-size: 12px;
  opacity: 0.6;
  margin-left: 4px;
}
.connection-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #d3b894;
}
.connection-dot.online {
  background: #91aa7a;
}
.panel {
  padding-top: 25px;
}
.page-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.page-heading h1 {
  margin: 0;
  font-size: 26px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.7px;
}
.page-heading h1 em {
  font-style: normal;
  color: inherit;
}
.page-heading p:empty,
.eyebrow:empty,
.page-heading .eyebrow:empty {
  display: none;
}
.page-heading p {
  font-size: 11px;
  color: var(--muted);
  margin: 6px 0 0;
}
.eyebrow {
  font-size: 9px;
  letter-spacing: 1.1px;
  color: #b09885;
  font-weight: 500;
}
.world-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #aa9785;
  font-size: 9px;
}
.world-meta .pair-dots i {
  width: 18px;
  height: 18px;
}
.room-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  background: #f0e7dd;
  border-radius: 10px;
  padding: 4px;
  width: max-content;
  margin-bottom: 17px;
}
.room-tabs button {
  font-size: 11px;
  color: #a48d79;
  padding: 7px 24px;
  border-radius: 7px;
  min-height: 32px;
}
.room-tabs button.active {
  background: #fffaf2;
  box-shadow: 0 1px 4px #8a6b4a13;
  color: #815d46;
}
.room-tabs > span {
  display: none;
}
.world-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.world-stage {
  overflow: hidden;
  border: 1px solid #e0d0bf;
  border-radius: 14px;
  background: #f3ebe0;
  position: relative;
}
.stage-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f7eee3;
  border-bottom: 1px solid #e9dac9;
  padding: 10px 16px;
  color: #a18a70;
  font-size: 10px;
  gap: 10px;
}
.stage-top > span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.stage-top i {
  width: 4px;
  height: 4px;
  background: #baa17d;
  border-radius: 50%;
}
.stage-top > div {
  display: flex;
  align-items: center;
  gap: 10px;
}
.stage-top button {
  font-size: 10px;
  color: #9b8269;
  padding: 3px;
  min-height: 27px;
}
.stage-top .decor-toggle {
  background: #e9d9c6;
  border-radius: 6px;
  padding: 5px 12px;
  color: #987451;
}
.stage-top #world-options {
  font-size: 16px;
  line-height: 1;
}
.canvas-wrap {
  position: relative;
  aspect-ratio: 1000/800;
  overflow: hidden;
  background: #f3ebe0;
}
#island {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: pixelated;
  touch-action: manipulation;
}
.scene-controls {
  position: absolute;
  bottom: 16px;
  right: 14px;
  display: flex;
  align-items: center;
  gap: 4px;
  background: #fffbf1dd;
  border: 1px solid #e5d7c3;
  border-radius: 8px;
  padding: 2px 4px;
  color: #ab957b;
}
.scene-controls button {
  font-size: 15px;
  min-width: 26px;
  min-height: 28px;
  padding: 0;
}
.scene-controls span {
  font-size: 8px;
  min-width: 28px;
  text-align: center;
}
.atlas-badge {
  position: absolute;
  bottom: 16px;
  left: 14px;
  border: 1px solid #e5d7c3;
  background: #fffbf1dd;
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 9px;
  color: #a28a70;
}
.atlas-badge span {
  margin-left: 7px;
  color: #b9959b;
}
.build-hint {
  position: absolute;
  bottom: 62px;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: 90%;
  text-align: center;
  font-size: 10px;
  color: #99714f;
  background: #fff8e5dd;
  border: 1px solid #e4d0ae;
  padding: 7px 12px;
  border-radius: 8px;
  pointer-events: none;
}
.canvas-cancel {
  position: absolute;
  left: 13px;
  top: 13px;
  background: #fff9ed;
  border: 1px solid #dfcdb6;
  border-radius: 7px;
  padding: 8px 12px;
  font-size: 10px;
  color: #a58461;
}
.stage-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  border-top: 1px solid #e6d8c6;
  background: #f7eee3;
  color: #b09b82;
  font-size: 9px;
}
.stage-footer button {
  font-size: 9px;
  color: #ac8b63;
}
.selection-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #e7d6c6;
  border-top: 1px solid #cfbca6;
  padding: 10px 13px;
  color: #906b4e;
  font-size: 10px;
  flex-wrap: wrap;
}
.selection-bar > span {
  margin-right: auto;
  font-weight: 500;
}
.selection-bar button {
  background: #fff9ef85;
  border: 1px solid #d8c0a6;
  border-radius: 5px;
  padding: 5px 9px;
  font-size: 10px;
  min-height: 30px;
}
.item-paint {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 0;
  font-size: 9px;
}
.item-paint input {
  width: 28px;
  height: 27px;
  padding: 3px;
  border: 1px solid #d8c0a6;
  background: #fff8ed;
}
.build-panel {
  display: none;
  background: #fffcf6;
  border: 1px solid #e7d9c8;
  border-radius: 13px;
  padding: 20px 15px;
  min-width: 0;
}
.decor-open .world-layout {
  grid-template-columns: minmax(0, 1fr) 230px;
}
.decor-open .build-panel {
  display: block;
}
.build-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.build-panel-title > span {
  font-size: 21px;
  color: #b2977d;
}
.build-panel h2 {
  font-size: 19px;
  margin: 4px 0 0;
  font-weight: 550;
  letter-spacing: -0.4px;
}
.build-panel .small {
  font-size: 10px;
  margin: 8px 0 14px;
}
.category-tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
  margin: 0 0 13px;
}
.category-tabs button {
  font-size: 9px;
  color: #b29a83;
  padding: 5px 6px;
  border-radius: 4px;
}
.category-tabs button.active {
  background: #eee0d3;
  color: #9b7156;
}
.catalog {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  max-height: 390px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #dbccbd transparent;
  padding: 2px;
}
.catalog-item {
  background: #faf4ea;
  border: 1px solid #eee1d0;
  border-radius: 9px;
  text-align: center;
  padding: 6px 5px 10px;
  min-width: 0;
  color: #a18b72;
  font-size: 9px;
}
.catalog-item.selected {
  background: #f1e0dd;
  border-color: #c49da4;
  box-shadow: 0 0 0 1px #c49da466;
}
.catalog-item canvas {
  width: 100%;
  max-width: 100px;
  aspect-ratio: 1;
  image-rendering: pixelated;
  display: block;
  margin: 0 auto 3px;
}
.home-quick {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 20px auto 0;
  max-width: 560px;
}
.home-quick button {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fffaf4;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 15px;
  color: #a18a79;
  font-size: 11px;
  flex: 1;
  justify-content: center;
}
.home-quick button > span {
  color: #b29aa2;
  font-size: 18px;
  line-height: 1;
}
.world-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-top: 19px;
}
.today-preview,
.pinned-preview {
  background: #f5eae5;
  border: 1px solid #e9d6cf;
  border-radius: 13px;
  text-align: left;
  padding: 21px;
}
.pinned-preview {
  background: #eee7f2;
  border-color: #e0d5e6;
}
.today-preview h2,
.pinned-preview h2 {
  font-size: 18px;
  font-weight: 500;
  margin: 8px 0 14px;
  letter-spacing: -0.3px;
}
.today-preview p:empty,
.pinned-preview p:empty {
  display: none;
}
.today-preview p,
.pinned-preview p {
  font-size: 11px;
  color: #a28d91;
  margin: 0 0 15px;
}
.text-link {
  font-size: 11px;
  color: #aa7e72;
  padding: 0;
}
.pinned-preview .text-link {
  color: #a38ab0;
}
h2 {
  font-size: 21px;
  line-height: 1.35;
  font-weight: 550;
  letter-spacing: -0.5px;
  margin: 0 0 12px;
}
h3 {
  font-size: 17px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.3px;
  margin: 5px 0 9px;
}
.card {
  border: 1px solid var(--line);
  background: var(--surface);
  padding: 25px;
  border-radius: var(--radius);
}
.muted,
.small {
  color: var(--muted);
}
.small {
  font-size: 11px;
}
.card > p:empty {
  display: none;
}
.section-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.section-top h2 {
  margin: 0;
}
.tag {
  display: inline-block;
  font-size: 9px;
  background: #eee5df;
  color: #ab9380;
  padding: 4px 7px;
  border-radius: 5px;
}
.tag:empty {
  display: none;
}
.day-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.partner-column {
  display: grid;
  gap: 20px;
  align-content: start;
}
.checkin-form h2 {
  font-size: 20px;
}
.checkin-form fieldset {
  border: 0;
  padding: 0;
  margin: 24px 0;
}
legend,
label {
  display: block;
  padding: 0;
  font-size: 12px;
  font-weight: 450;
  color: #9f8a78;
  margin: 18px 0 10px;
}
legend {
  margin: 0 0 12px;
}
.moods {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}
.mood {
  background: #faf4ed;
  border: 1px solid #e9dfd2;
  border-radius: 9px;
  padding: 10px 3px;
  font-size: 9px;
  color: #a6937e;
  min-width: 0;
}
.mood > span {
  display: block;
  font-size: 25px;
  line-height: 1;
  margin: 0 0 7px;
  color: #bd9c86;
}
.mood.active {
  background: #f2e1e7;
  border-color: #d2aebc;
  color: #a87890;
}
.mood.active > span {
  color: #b6809b;
}
.chip-options {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.chip-options button {
  background: #faf5ee;
  border: 1px solid #e8ded1;
  border-radius: 20px;
  padding: 7px 10px;
  font-size: 10px;
  color: #ac9781;
}
.chip-options button.active {
  background: #e9e2ef;
  border-color: #bca9cd;
  color: #a085b7;
}
input,
textarea,
select {
  width: 100%;
  min-width: 0;
  background: #fcf8f1;
  border: 1px solid #e4d9ca;
  border-radius: 8px;
  padding: 11px 12px;
  font-size: 12px;
}
textarea {
  resize: vertical;
  line-height: 1.8;
}
input[type="range"] {
  padding: 0;
  accent-color: #b999a6;
  background: none;
  cursor: pointer;
}
label output {
  float: right;
  font-size: 11px;
  color: #b29a82;
}
.primary,
.secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 11px 18px;
  background: #ad8973;
  color: #fffaf2;
  border: 1px solid #ad8973;
  border-radius: 8px;
  font-size: 12px;
}
.primary:hover {
  background: #9c7964;
}
.secondary {
  background: #f4ece2;
  color: #a18268;
  border-color: #e1cfbc;
}
.plain-button {
  font-size: 10px;
  color: #b39d87;
  margin-top: 16px;
  padding: 0;
}
.full {
  width: 100%;
  margin-top: 18px;
}
.checkin-form > .primary {
  width: 100%;
  margin-top: 17px;
}
.form-caption {
  font-size: 10px;
  line-height: 1.8;
  color: #b1a08c;
  margin: 12px 0 0;
}
.shared-mood {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 20px 0 12px;
}
.shared-mood > span {
  font-size: 34px;
  color: #b89fc4;
}
.shared-mood h3 {
  font-size: 22px;
}
.energy-dots {
  display: flex;
  gap: 6px;
  margin: 0 0 25px;
}
.energy-dots i {
  width: 19px;
  height: 5px;
  border-radius: 3px;
  background: #ece4da;
}
.energy-dots .filled {
  background: #bda58d;
}
.user-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 13px;
  line-height: 1.85;
  color: #938371;
}
.partner-day small {
  font-size: 10px;
}
.avatar-circle {
  background: #ece2f1;
  color: #ae94bc;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 20px;
}
.empty-partner {
  text-align: center;
  padding: 30px 8px;
  color: #c8b69e;
  font-size: 34px;
}
.empty-partner h3 {
  font-size: 16px;
  color: #aa9580;
}
.empty-partner p {
  font-size: 11px;
  color: #b39f89;
  max-width: 250px;
  margin: 8px auto;
}
.inline-form {
  display: flex;
  margin: 18px 0 5px;
  border: 1px solid #e3d5c5;
  border-radius: 8px;
  overflow: hidden;
}
.inline-form input {
  border: 0;
  background: #fbf5eb;
  border-radius: 0;
}
.inline-form button {
  padding: 0 13px;
  background: #eee0d0;
  font-size: 20px;
  color: #ad8968;
}
.goal {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #ece4da;
  padding: 14px 0;
}
.goal-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  text-align: left;
  min-width: 0;
  font-size: 12px;
  color: #ac9680;
}
.goal-toggle i {
  width: 17px;
  height: 17px;
  border: 1px solid #d5c5b3;
  border-radius: 5px;
  flex-shrink: 0;
  font-style: normal;
  font-size: 11px;
  display: grid;
  place-items: center;
}
.goal-toggle.done {
  color: #c3b29b;
}
.goal-toggle.done i {
  background: #ebddcd;
  color: #b39677;
}
.goal-toggle.done span {
  text-decoration: line-through;
}
.goal > button:last-child {
  color: #c8b6a0;
}
.partner-extras {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.partner-extras span {
  border: 1px solid #e4d5e8;
  background: #f1e8f4;
  padding: 5px 9px;
  border-radius: 14px;
  font-size: 10px;
  color: #ae8eba;
}
.day-entry {
  border-top: 1px solid var(--line);
  padding-top: 14px;
  margin-top: 16px;
}
.day-entry p {
  font-size: 11px;
  margin: 8px 0;
}
.expression-card {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  background: #f7eee6;
  padding: 23px;
  border-color: #e7d8c7;
}
.expression-card > div:first-child {
  max-width: 170px;
  padding-top: 8px;
}
.expression-card h2:empty {
  display: none;
}
.expressions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 9px;
  flex: 1;
  max-width: 540px;
}
.expressions > button {
  display: flex;
  flex-direction: column;
  gap: 7px;
  align-items: center;
  justify-content: center;
  border: 1px solid #e5d5c4;
  border-radius: 10px;
  padding: 10px;
  background: #fff8ee;
  color: #b0967a;
  font-size: 10px;
  min-width: 0;
}
.expressions canvas {
  width: 100%;
  max-width: 90px;
  aspect-ratio: 1;
  image-rendering: pixelated;
}
.expression-preview {
  display: block;
  width: 256px;
  height: 256px;
  max-width: 100%;
  margin: 20px auto;
  image-rendering: pixelated;
}
.post-filters {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  margin: 25px 0 22px;
}
.post-filters button {
  font-size: 11px;
  color: #b09b83;
  padding: 0 0 12px;
}
.post-filters button.active {
  border-bottom: 2px solid #bd9b9e;
  color: #a88287;
}
.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.post-card {
  background: #fbf2e4;
  border: 1px solid #ebdac1;
  border-radius: 12px;
  padding: 20px;
}
.post-card:nth-child(3n + 2) {
  background: #eee6f3;
  border-color: #ded1e7;
}
.post-card:nth-child(3n + 3) {
  background: #eef1e4;
  border-color: #dde3ce;
}
.post-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  flex-wrap: wrap;
  color: #b7a184;
}
.post-meta time {
  font-size: 8px;
  margin-left: auto;
}
.author-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.sage {
  background: #acb390;
}
.lilac {
  background: #ba9cc7;
}
.post-card h2 {
  font-size: 18px;
  margin: 16px 0 8px;
  overflow-wrap: anywhere;
}
.post-card .user-text {
  font-size: 12px;
  margin: 8px 0;
}
.post-art {
  display: block;
  width: 100%;
  max-width: 220px;
  height: auto;
  image-rendering: pixelated;
  margin: 18px auto;
}
.post-actions {
  display: flex;
  align-items: center;
  gap: 15px;
  border-top: 1px solid #e0d3bf;
  padding-top: 13px;
  margin-top: 20px;
}
.post-actions button {
  font-size: 10px;
  color: #b49b80;
  padding: 0;
}
.post-actions .hearted {
  color: #bd859e;
}
.post-actions button:last-child:not([data-pin]) {
  margin-left: auto;
}
.empty-state {
  grid-column: 1/-1;
  text-align: center;
  border: 1px dashed #dfd0bf;
  border-radius: 13px;
  padding: 55px 20px;
  color: #c3ad93;
  background: #fffaf2;
}
.empty-state > span {
  font-size: 32px;
}
.empty-state h2 {
  font-size: 18px;
  margin: 14px 0 8px;
  color: #ac9478;
}
.empty-state p {
  font-size: 11px;
  color: #baa489;
  margin: 0;
}
.gesture-card {
  display: flex;
  align-items: center;
  gap: 25px;
  background: #f5eae4;
  border-color: #e6d4cb;
}
.gesture-card > div:first-child {
  max-width: 180px;
  flex-shrink: 0;
}
.gesture-card h2 {
  font-size: 20px;
  margin: 0;
}
.gesture-card p:empty {
  display: none;
}
.gesture-buttons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  flex: 1;
}
.gesture-buttons button {
  display: flex;
  gap: 9px;
  align-items: center;
  padding: 12px;
  background: #fff6ed;
  border: 1px solid #e8d4c6;
  border-radius: 9px;
  font-size: 10px;
  color: #b18e76;
}
.gesture-buttons button > span {
  font-size: 25px;
  color: #c797a9;
  line-height: 1;
}
.together-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 20px;
}
.question-card {
  background: #eef0f5;
  border-color: #dce0e9;
}
.question-card h2 {
  font-size: 20px;
  margin: 19px 0 22px;
  line-height: 1.55;
}
.question-card .section-top button {
  font-size: 18px;
  color: #b2b7c9;
}
.question-card .primary {
  background: #9a9db8;
  border-color: #9a9db8;
}
.answer {
  padding-top: 16px;
  margin-top: 18px;
  border-top: 1px solid #ddd7cc;
}
.answer h3 {
  font-size: 17px;
}
.answer .user-text {
  font-size: 12px;
}
.event {
  display: flex;
  align-items: center;
  gap: 13px;
  border-top: 1px solid #e8ded0;
  padding-top: 17px;
  margin-top: 18px;
}
.event-date {
  background: #f9eedf;
  border: 1px solid #e5d0b2;
  border-radius: 7px;
  min-width: 55px;
  text-align: center;
  padding: 6px;
  color: #b99972;
}
.event-date b {
  font-size: 24px;
  font-weight: 450;
  display: block;
}
.event-date span {
  font-size: 9px;
}
.event h3 {
  font-size: 16px;
  margin: 0 0 3px;
}
.event > button {
  margin-left: auto;
  color: #c7b297;
}
.empty-mini {
  text-align: center;
  padding: 28px 8px;
  font-size: 32px;
  color: #c7b397;
}
.empty-mini p {
  font-size: 11px;
  margin: 10px 0 0;
}
.gesture-row {
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid #e8ddd0;
  padding: 14px 0;
}
.gesture-row > span {
  font-size: 27px;
  color: #cb9ab0;
}
.gesture-row b {
  display: block;
  font-size: 11px;
  font-weight: 450;
  color: #b29578;
}
.gesture-row small {
  display: block;
  font-size: 9px;
  color: #c3ac90;
  margin-top: 3px;
}
.gesture-row i {
  font-style: normal;
  font-size: 9px;
  color: #bfa2b2;
  margin-left: auto;
  white-space: nowrap;
}
.gesture-arrival {
  position: fixed;
  z-index: 40;
  left: 50%;
  bottom: 27px;
  transform: translateX(-50%);
  display: flex;
  gap: 14px;
  align-items: center;
  max-width: 94vw;
  background: #fff3f8;
  border: 1px solid #e5c8d6;
  border-radius: 13px;
  padding: 14px 19px;
  box-shadow: 0 10px 35px #9d6d7c18;
}
.arrival-icon {
  font-size: 35px;
  line-height: 1;
  color: #c68ca7;
}
.gesture-arrival small {
  display: block;
  font-size: 8px;
  letter-spacing: 1px;
  color: #c4a0b2;
}
.gesture-arrival strong {
  font-size: 16px;
  font-weight: 500;
  color: #b588a1;
  white-space: nowrap;
}
.gesture-arrival button {
  font-size: 10px;
  border: 1px solid #e5c7d5;
  border-radius: 7px;
  padding: 7px 9px;
  color: #bd96ac;
  white-space: nowrap;
}
.wardrobe-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 22px;
  align-items: start;
}
.wardrobe-stage {
  border: 1px solid #e8d8c7;
  background: #f7eee5;
  border-radius: var(--radius);
  padding: 24px;
  text-align: center;
}
.wardrobe-stage .eyebrow {
  font-size: 8px;
}
.wardrobe-stage canvas {
  width: 100%;
  max-width: 320px;
  height: auto;
  display: block;
  margin: 0 auto;
  image-rendering: pixelated;
}
.wardrobe-stage > span {
  display: none;
}
.look-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 20px;
}
.look-grid button {
  background: #fbf4ea;
  border: 1px solid #e8d8c3;
  border-radius: 10px;
  padding: 8px;
  color: #b29a7d;
  font-size: 10px;
  min-width: 0;
}
.look-grid button.selected {
  background: #eee2ef;
  border-color: #bd9ecb;
  color: #a585b4;
}
.look-grid canvas {
  display: block;
  width: 100%;
  max-width: 120px;
  image-rendering: pixelated;
  margin: 0 auto 8px;
}
.pets-wardrobe {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 25px;
  align-items: center;
  margin-top: 22px;
}
.pets-wardrobe canvas {
  width: 100%;
  height: auto;
  display: block;
  image-rendering: pixelated;
}
.pets-wardrobe h2 {
  font-size: 23px;
}
.pets-wardrobe p:empty {
  display: none;
}
#pet-collar {
  height: 35px;
  padding: 3px;
}
.studio-layout {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 22px;
  align-items: start;
}
.drawing-card {
  background: #f2e9dd;
  border: 1px solid #e2d4c2;
  border-radius: var(--radius);
  padding: 20px;
}
.drawing-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 18px;
  color: #b29b80;
  font-size: 8px;
  letter-spacing: 1px;
}
.drawing-toolbar button {
  font-size: 10px;
  letter-spacing: 0;
}
#drawing {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  image-rendering: pixelated;
  touch-action: none;
  border: 1px solid #ddcdb7;
  background: #fff6e7;
}
.swatches {
  display: flex;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 22px;
}
.swatch {
  width: 25px;
  height: 25px;
  border: 3px solid #fff7e9;
  border-radius: 50%;
}
.swatch.active {
  outline: 1px solid #b5998d;
  outline-offset: 2px;
}
.studio-controls .primary,
.studio-controls .secondary {
  width: 100%;
  margin-top: 16px;
}
.studio-controls .plain-button {
  display: block;
  margin: 18px auto;
}
.studio-controls > p:empty {
  display: none;
}
footer {
  display: none;
}
dialog {
  width: calc(100% - 32px);
  max-width: 490px;
  max-height: 86vh;
  max-height: 86dvh;
  overflow: auto;
  background: #fffaf3;
  color: var(--ink);
  border: 1px solid #e5d3bf;
  border-radius: 16px;
  padding: 34px 28px;
  box-shadow: 0 20px 80px #684d3630;
}
dialog::backdrop {
  background: #57433266;
  backdrop-filter: blur(5px);
}
.close {
  position: absolute;
  right: 13px;
  top: 8px;
  font-size: 28px;
  color: #b69a80;
}
.modal-title {
  font-size: 25px;
  font-weight: 550;
  letter-spacing: -0.6px;
  margin: 10px 0 19px;
}
dialog p {
  font-size: 12px;
  color: #ae947a;
  line-height: 1.8;
}
dialog hr {
  border: 0;
  border-top: 1px solid #e8dac7;
  margin: 23px 0;
}
.copy-row {
  display: flex;
  gap: 8px;
}
.copy-row input {
  font-size: 10px;
  min-width: 0;
}
.copy-row button {
  white-space: nowrap;
  flex-shrink: 0;
}
.palette-choices {
  display: grid;
  gap: 11px;
  margin: 22px 0;
}
.palette-choice {
  display: flex;
  gap: 12px;
  align-items: center;
  text-align: left;
  border: 1px solid #e4d3bf;
  background: #fcf3e5;
  border-radius: 8px;
  padding: 12px;
  font-size: 11px;
  color: #ac8d6a;
}
.palette-choice.active {
  border-color: #b7998f;
  background: #f0dfdf;
}
.palette-choice span {
  width: 27px;
  height: 27px;
  display: block;
  border-radius: 5px;
}
.house-colors {
  grid-template-columns: repeat(3, 1fr);
}
.house-colors button {
  font-size: 9px;
  text-align: center;
  justify-content: center;
}
.toast {
  position: fixed;
  z-index: 50;
  bottom: 25px;
  left: 50%;
  max-width: 90vw;
  width: max-content;
  transform: translate(-50%, 15px);
  background: #8d6e5b;
  color: #fff6eb;
  border: 1px solid #81634f;
  padding: 11px 19px;
  border-radius: 10px;
  box-shadow: 0 6px 20px #58433120;
  font-size: 11px;
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
  text-align: center;
}
.toast.visible {
  opacity: 1;
  transform: translate(-50%, 0);
}
@media (min-width: 1400px) {
  main {
    padding: 0 48px;
  }
  .sidebar {
    width: 225px;
    padding: 38px 25px;
  }
  .decor-open .world-layout {
    grid-template-columns: minmax(0, 1fr) 255px;
  }
  .catalog {
    max-height: 470px;
  }
  .page-heading {
    margin-bottom: 24px;
  }
  .world-stage {
    max-width: 1000px;
  }
}
@media (max-width: 1050px) {
  .sidebar {
    width: 180px;
    padding: 28px 13px;
  }
  .brand {
    font-size: 19px;
  }
  .brand-mark {
    font-size: 31px;
  }
  main {
    padding: 0 23px;
  }
  .decor-open .world-layout {
    grid-template-columns: minmax(0, 1fr) 190px;
  }
  .build-panel {
    padding: 17px 11px;
  }
  .catalog {
    gap: 7px;
    max-height: 300px;
  }
  .catalog-item {
    font-size: 8px;
  }
  .category-tabs {
    gap: 2px;
  }
  .category-tabs button {
    padding: 4px;
    font-size: 8px;
  }
  .post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .expression-card {
    display: block;
  }
  .expression-card > div:first-child {
    padding: 0 0 15px;
  }
  .expressions {
    max-width: none;
  }
  .gesture-card {
    display: block;
  }
  .gesture-card > div:first-child {
    margin-bottom: 18px;
    max-width: none;
  }
  .card {
    padding: 22px;
  }
  .wardrobe-layout {
    gap: 15px;
  }
  .pets-wardrobe {
    grid-template-columns: 1fr 1fr;
  }
  .pets-wardrobe > div:first-child {
    grid-column: 1/-1;
  }
  .pets-wardrobe > canvas {
    width: 100%;
  }
}
@media (max-width: 700px) {
  html {
    scroll-behavior: auto;
  }
  .app-shell {
    display: block;
  }
  .sidebar {
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 15;
    width: 100%;
    padding: 6px 12px calc(9px + env(safe-area-inset-bottom));
    background: #fcf8f0f2;
    border-right: 0;
    border-top: 1px solid #e7d9c7;
    backdrop-filter: blur(16px);
  }
  .brand,
  .side-caption,
  .side-bottom {
    display: none;
  }
  nav {
    display: flex;
    gap: 4px;
    justify-content: space-between;
    margin: 0;
  }
  nav button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 5px;
    flex: 1;
    font-size: 9px;
    border-radius: 8px;
  }
  nav button[data-tab="wardrobe"],
  nav button[data-tab="studio"] {
    display: none;
  }
  nav button > span {
    font-size: 23px;
    width: 24px;
    height: 24px;
  }
  nav svg {
    width: 22px;
    height: 22px;
  }
  nav b {
    position: absolute;
    top: 5px;
    right: calc(50% - 23px);
    min-width: 13px;
    height: 13px;
    font-size: 7px;
    line-height: 13px;
  }
  main {
    padding: 0 17px calc(105px + env(safe-area-inset-bottom));
    max-width: 540px;
    margin: 0 auto;
  }
  header {
    height: 61px;
    border-bottom: 0;
  }
  .breadcrumb {
    font-size: 13px;
  }
  .breadcrumb b {
    font-weight: 550;
    color: #92765e;
  }
  .connection {
    font-size: 9px;
    padding: 6px 10px;
  }
  .panel {
    padding-top: 6px;
  }
  .page-heading {
    margin-bottom: 15px;
    gap: 12px;
    flex-wrap: wrap;
  }
  .page-heading h1 {
    font-size: 24px;
  }
  .page-heading .primary {
    font-size: 11px;
    min-height: 35px;
    padding: 8px 13px;
  }
  .world-meta {
    font-size: 8px;
    gap: 6px;
  }
  .world-meta .pair-dots i {
    width: 16px;
    height: 16px;
  }
  .room-tabs {
    padding: 3px;
    margin-bottom: 13px;
    border-radius: 9px;
  }
  .room-tabs button {
    padding: 6px 23px;
    font-size: 10px;
    min-height: 30px;
  }
  .world-stage {
    border-radius: 12px;
  }
  .stage-top {
    padding: 8px 11px;
    font-size: 9px;
  }
  .stage-top > div {
    gap: 8px;
  }
  .stage-top button {
    font-size: 9px;
    min-height: 28px;
  }
  .stage-top .decor-toggle {
    padding: 5px 9px;
    font-size: 9px;
  }
  .stage-top #world-options {
    font-size: 15px;
  }
  .canvas-wrap {
    aspect-ratio: 1000/800;
  }
  .scene-controls {
    bottom: 11px;
    right: 10px;
  }
  .scene-controls button {
    min-width: 23px;
    min-height: 27px;
    font-size: 13px;
  }
  .scene-controls span {
    font-size: 7px;
    min-width: 24px;
  }
  .atlas-badge {
    bottom: 11px;
    left: 10px;
    padding: 6px 8px;
    font-size: 8px;
  }
  .atlas-badge span {
    margin-left: 6px;
  }
  .stage-footer {
    padding: 9px 11px;
    font-size: 8px;
  }
  .stage-footer button {
    font-size: 8px;
  }
  .home-quick {
    gap: 8px;
    margin-top: 15px;
  }
  .home-quick button {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 11px 5px;
    border-radius: 10px;
    font-size: 10px;
  }
  .home-quick button > span {
    font-size: 22px;
  }
  .world-bottom {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 16px;
  }
  .today-preview,
  .pinned-preview {
    padding: 19px;
  }
  .today-preview h2,
  .pinned-preview h2 {
    font-size: 18px;
    margin: 7px 0 13px;
  }
  .text-link {
    font-size: 11px;
  }
  .decor-open .world-layout {
    display: block;
  }
  .decor-open .build-panel {
    position: fixed;
    bottom: calc(81px + env(safe-area-inset-bottom));
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 24px);
    max-width: 520px;
    z-index: 12;
    border-radius: 15px 15px 8px 8px;
    background: #fffaf2f8;
    box-shadow: 0 -8px 35px #79604c15;
    padding: 17px 13px;
  }
  .placing .build-panel {
    display: none;
  }
  .build-panel-title h2 {
    font-size: 19px;
    margin-top: 3px;
  }
  .build-panel-title .eyebrow {
    font-size: 7px;
  }
  .build-panel .small {
    display: none;
  }
  .category-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin: 12px 0 10px;
    gap: 5px;
    padding-bottom: 9px;
  }
  .category-tabs button {
    font-size: 9px;
    padding: 5px 8px;
    white-space: nowrap;
  }
  .catalog {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-height: 210px;
    gap: 7px;
    padding: 1px;
  }
  .catalog-item {
    font-size: 7px;
    padding: 5px 3px 8px;
    border-radius: 8px;
    line-height: 1.4;
  }
  .catalog-item canvas {
    max-width: 80px;
    margin: 0 auto 4px;
  }
  .build-hint {
    font-size: 9px;
    bottom: 53px;
    padding: 6px 9px;
    max-width: 92%;
    white-space: normal;
  }
  .canvas-cancel {
    top: 10px;
    left: 10px;
    padding: 7px 10px;
    font-size: 9px;
  }
  .selection-bar {
    gap: 5px;
    padding: 9px;
  }
  .selection-bar > span {
    font-size: 9px;
  }
  .selection-bar button {
    font-size: 9px;
    padding: 5px 7px;
  }
  .item-paint {
    font-size: 8px;
    gap: 4px;
  }
  .item-paint input {
    width: 24px;
    height: 25px;
  }
  .day-grid,
  .together-grid,
  .studio-layout,
  .wardrobe-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .card {
    padding: 21px;
  }
  .moods {
    gap: 5px;
  }
  .mood {
    font-size: 8px;
    padding: 9px 2px;
  }
  .mood > span {
    font-size: 24px;
    margin-bottom: 7px;
  }
  .chip-options {
    gap: 6px;
  }
  .chip-options button {
    font-size: 10px;
    padding: 7px 9px;
  }
  input,
  textarea,
  select {
    font-size: 16px;
    padding: 10px 11px;
  }
  label,
  legend {
    font-size: 12px;
  }
  .inline-form input {
    font-size: 13px;
  }
  .form-caption {
    font-size: 10px;
  }
  .primary,
  .secondary {
    font-size: 12px;
    min-height: 41px;
  }
  .partner-column {
    gap: 16px;
  }
  .user-text {
    font-size: 13px;
  }
  .expression-card {
    padding: 18px 12px;
  }
  .expression-card > div:first-child {
    padding: 0 5px 12px;
  }
  .expressions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }
  .expressions > button {
    padding: 8px 5px;
    font-size: 9px;
  }
  .expressions canvas {
    max-width: 95px;
  }
  .expression-preview {
    width: 256px;
    height: 256px;
  }
  .post-filters {
    gap: 14px;
    margin: 22px 0 17px;
  }
  .post-filters button {
    font-size: 10px;
  }
  .post-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .post-card {
    padding: 20px;
  }
  .post-card h2 {
    font-size: 20px;
  }
  .post-card .user-text {
    font-size: 13px;
  }
  .post-meta {
    font-size: 9px;
  }
  .post-meta time {
    font-size: 8px;
  }
  .post-actions button {
    font-size: 11px;
    min-height: 25px;
  }
  .empty-state {
    padding: 35px 15px;
  }
  .empty-state h2 {
    font-size: 18px;
  }
  .gesture-card {
    padding: 20px 15px;
  }
  .gesture-card h2 {
    font-size: 20px;
  }
  .gesture-buttons {
    gap: 7px;
  }
  .gesture-buttons button {
    flex-direction: column;
    font-size: 8px;
    gap: 9px;
    padding: 12px 3px;
    min-height: 80px;
    line-height: 1.5;
  }
  .gesture-buttons button > span {
    font-size: 25px;
  }
  .together-grid {
    margin-top: 17px;
  }
  .question-card h2 {
    font-size: 20px;
  }
  .gesture-row small {
    font-size: 9px;
  }
  .wardrobe-stage {
    padding: 17px;
  }
  .wardrobe-stage canvas {
    max-width: 250px;
  }
  .wardrobe-stage .eyebrow {
    font-size: 8px;
  }
  .look-grid {
    gap: 10px;
    margin-top: 16px;
  }
  .look-grid button {
    font-size: 11px;
    padding: 11px 6px;
  }
  .look-grid canvas {
    max-width: 130px;
  }
  .pets-wardrobe {
    grid-template-columns: 1fr;
    margin-top: 17px;
    gap: 17px;
  }
  .pets-wardrobe canvas {
    max-width: 300px;
    margin: auto;
  }
  .pets-wardrobe > div:first-child {
    grid-column: auto;
  }
  .drawing-card {
    padding: 16px;
  }
  .drawing-toolbar {
    font-size: 7px;
  }
  .drawing-toolbar button {
    font-size: 10px;
  }
  .swatches {
    gap: 12px;
    padding-top: 20px;
  }
  .swatch {
    width: 26px;
    height: 26px;
  }
  .studio-controls .plain-button {
    font-size: 11px;
  }
  .toast {
    bottom: calc(98px + env(safe-area-inset-bottom));
    font-size: 11px;
    padding: 11px 15px;
  }
  .gesture-arrival {
    bottom: calc(98px + env(safe-area-inset-bottom));
    gap: 9px;
    padding: 12px;
  }
  .gesture-arrival strong {
    font-size: 14px;
  }
  .gesture-arrival small {
    font-size: 7px;
  }
  .gesture-arrival .arrival-icon {
    font-size: 28px;
  }
  .gesture-arrival button {
    font-size: 9px;
    padding: 6px;
  }
  .copy-row {
    flex-direction: column;
  }
  .copy-row input {
    font-size: 12px;
  }
  .copy-row button {
    min-height: 35px;
  }
  dialog {
    padding: 32px 23px;
  }
  .modal-title {
    font-size: 24px;
  }
  .palette-choices {
    gap: 10px;
  }
  .palette-choice {
    font-size: 12px;
    min-height: 43px;
  }
  .house-colors button {
    font-size: 9px;
    padding: 9px;
  }
  .empty-partner {
    padding: 25px 7px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  * {
    animation: none !important;
    transition: none !important;
  }
}
nav b:empty {
  display: none;
}
.pose-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
  margin-top: 20px;
}
.pose-option {
  background: #f7eee5;
  border: 1px solid #e2d1be;
  border-radius: 10px;
  padding: 10px;
  font-size: 11px;
  color: #aa8d72;
}
.pose-option canvas {
  display: block;
  width: 100%;
  max-width: 180px;
  image-rendering: pixelated;
  margin: auto auto 9px;
}
.layout-options {
  display: grid;
  gap: 10px;
  margin: 20px 0;
}
.layout-options button {
  text-align: left;
  border: 1px solid #e3d0b9;
  background: #fbf3e7;
  padding: 15px;
  border-radius: 9px;
  font-size: 12px;
  color: #a98764;
}
.layout-options small {
  display: block;
  font-size: 10px;
  color: #b59a7c;
  margin-top: 4px;
}
.art-loading {
  height: 100px;
  display: grid;
  place-items: center;
  color: #b09a80;
}
.home-quick svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.house-colors {
  display: grid;
  gap: 8px;
}
.scene-controls {
  min-height: 31px;
}
.build-panel .eyebrow {
  font-size: 8px;
}
.look-grid button:hover {
  background: #f1e3e8;
}
body:not(.art-ready) .canvas-wrap::after {
  content: "Ev hazırlanıyor…";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: #f3ebe0;
  color: #aa9175;
  font-size: 12px;
  z-index: 2;
}
.room-tabs button,
.look-grid button {
  transition: background 0.15s;
}
.scene-controls span {
  font-variant-numeric: tabular-nums;
}
.home-quick button:hover {
  background: #f3e8df;
}
:root {
  --muted: #8c7b6a;
}
.eyebrow {
  color: #8f7762;
}
nav button {
  color: #8f7b69;
}
.connection {
  color: #8e735e;
}
.stage-top,
.stage-top button {
  color: #8a7058;
}
.catalog-item {
  color: #8c7157;
}
.category-tabs button {
  color: #9a7c62;
}
.text-link {
  color: #9b7164;
}
.pinned-preview .text-link {
  color: #9372a6;
}
label,
legend {
  color: #8f7763;
}
.form-caption {
  color: #9b856d;
}
.primary {
  background: #99745c;
  border-color: #99745c;
}
.secondary {
  color: #917052;
}
.mood {
  color: #987b61;
}
.chip-options button {
  color: #987b61;
}
.post-meta {
  color: #a1876a;
}
.post-actions button {
  color: #a18667;
}
.look-grid button {
  color: #9c7c5c;
}
.scene-controls {
  color: #a38765;
}
.world-meta {
  color: #a18b73;
}
button {
  transition:
    background 0.16s,
    color 0.16s,
    border-color 0.16s;
}
button:active:not(:disabled) {
  transform: translateY(1px);
}
.gesture-arrival .arrival-art {
  width: 62px;
  height: 62px;
  image-rendering: pixelated;
  flex-shrink: 0;
}
.gesture-arrival {
  min-height: 90px;
}
.stage-top #motion-toggle {
  font-size: 19px;
  line-height: 1;
  width: 23px;
  color: #b09377;
}
.stage-top #motion-toggle[aria-pressed="false"] {
  opacity: 0.4;
}
.stage-top > div {
  gap: 8px;
}
@media (max-width: 700px) {
  .stage-top > div {
    gap: 6px;
  }
  .stage-top #motion-toggle {
    font-size: 17px;
    width: 19px;
  }
  .gesture-arrival .arrival-art {
    width: 48px;
    height: 48px;
  }
  .gesture-arrival {
    min-height: 75px;
  }
}
.stage-top .room-door {
  margin-right: auto;
  font-size: 9px;
  color: #a1876d;
  padding: 3px 9px;
  border: 1px solid #e2cfb6;
  border-radius: 5px;
  background: #fcf5e9;
}
.stage-top {
  gap: 8px;
}
@media (max-width: 700px) {
  .stage-top .room-door {
    font-size: 8px;
    padding: 3px 6px;
  }
  .stage-top > div {
    gap: 4px;
  }
  .stage-top .decor-toggle {
    padding: 5px 7px;
  }
}
.activities-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: start;
}
.puzzle-card,
.mural-card {
  min-width: 0;
}
.puzzle-card .section-top h2,
.mural-card .section-top h2 {
  font-size: 21px;
}
.puzzle-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
  aspect-ratio: 1;
  padding: 9px;
  border: 1px solid #dfc9af;
  border-radius: 10px;
  background: #e8d7c1;
  margin-top: 19px;
  overflow: hidden;
  max-width: 420px;
}
.puzzle-tile {
  display: block;
  position: relative;
  border: 1px solid #d5b898;
  aspect-ratio: 1;
  border-radius: 5px;
  background-color: #fff3df;
  background-size: 300% 300%;
  image-rendering: pixelated;
  box-shadow: 0 2px 0 #cbb293;
  min-width: 0;
}
.puzzle-tile.blank {
  background: #d5c2a9;
  box-shadow: inset 0 1px 4px #a68d6d35;
  border: 1px solid #d0baa0;
  opacity: 1;
}
.puzzle-tile small {
  position: absolute;
  bottom: 4px;
  left: 4px;
  font-size: 8px;
  background: #fff8e8bd;
  padding: 1px 4px;
  border-radius: 3px;
  color: #b49a7d;
}
.puzzle-board.solved {
  gap: 0;
  padding: 8px;
}
.puzzle-board.solved .puzzle-tile {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 1;
}
.puzzle-empty {
  grid-column: 1/-1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 25px;
  color: #b59878;
  min-width: 0;
}
.puzzle-empty > span {
  font-size: 55px;
}
.game-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 17px;
  font-size: 11px;
  color: #ab9277;
}
.puzzle-choices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 22px;
}
.puzzle-choices button {
  background: #f8eedf;
  border: 1px solid #e1cbb0;
  border-radius: 10px;
  padding: 8px;
  font-size: 11px;
  color: #a58563;
}
.puzzle-choices img {
  width: 100%;
  height: auto;
  display: block;
  image-rendering: pixelated;
  margin-bottom: 9px;
  border-radius: 5px;
}
.puzzle-original {
  display: block;
  width: 100%;
  max-width: 360px;
  height: auto;
  margin: 20px auto 0;
  image-rendering: pixelated;
}
.mural-card .small {
  margin-bottom: 20px;
}
#mural {
  display: block;
  width: 100%;
  height: auto;
  image-rendering: pixelated;
  touch-action: none;
  border: 1px solid #dbc4a9;
  border-radius: 5px;
  background: #fff6e7;
}
.mural-actions {
  display: flex;
  gap: 10px;
  margin-top: 22px;
}
.mural-actions .primary {
  flex: 1;
}
.mural-card .swatches {
  gap: 10px;
}
.mural-card .tag {
  margin-left: auto;
}
@media (max-width: 700px) {
  .activities-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .puzzle-board {
    margin-top: 17px;
    padding: 7px;
    gap: 4px;
  }
  .puzzle-tile small {
    font-size: 8px;
  }
  .game-footer {
    font-size: 10px;
  }
  .puzzle-choices {
    gap: 7px;
  }
  .puzzle-choices button {
    font-size: 9px;
    padding: 7px;
  }
  .mural-card .swatches {
    gap: 12px;
  }
  .mural-actions {
    margin-top: 20px;
  }
  .mural-actions .secondary {
    font-size: 11px;
  }
  .sidebar nav button {
    font-size: 8px;
  }
}
@media (max-width: 380px) {
  .stage-top #ambience span,
  .stage-top #couple-pose span {
    display: none;
  }
  .stage-top > div {
    gap: 6px;
  }
  .stage-top .room-door {
    padding: 3px 5px;
  }
  .world-meta {
    font-size: 7px;
  }
  .mood {
    font-size: 7px;
  }
  .moods {
    gap: 4px;
  }
  .home-quick button {
    font-size: 9px;
  }
}
/* The entire product uses the same pixel game skin, not only the canvas. */
@font-face {
  font-family: Pixelify;
  src: url("./assets/pixelify.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
:root {
  --pixel-ink: #76502f;
  --pixel-line: #ad7e49;
  --pixel-paper: #fff0d5;
  --pixel-cut: polygon(
    0 5px,
    5px 5px,
    5px 0,
    calc(100% - 5px) 0,
    calc(100% - 5px) 5px,
    100% 5px,
    100% calc(100% - 5px),
    calc(100% - 5px) calc(100% - 5px),
    calc(100% - 5px) 100%,
    5px 100%,
    5px calc(100% - 5px),
    0 calc(100% - 5px)
  );
}
body {
  font-family: Pixelify, monospace;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--pixel-ink);
  background-color: #f1e1c7;
  background-image: repeating-linear-gradient(
    0deg,
    #dfc6a033 0,
    #dfc6a033 1px,
    transparent 1px,
    transparent 12px
  );
}
button,
input,
textarea,
select {
  font-family: Pixelify, monospace;
  letter-spacing: 0;
}
button:focus-visible,
a:focus-visible,
canvas:focus-visible {
  outline: 2px solid #aa6d95;
  outline-offset: 3px;
}
main {
  background: #fff8e7aa;
  min-height: 100vh;
}
.sidebar {
  background: #ead1ac;
  border-right: 3px solid #bb8c52;
  box-shadow: inset -3px 0 #f9e6bc;
}
.brand {
  font-size: 25px;
  color: #855631;
  font-weight: 600;
  letter-spacing: 0;
}
.brand-sub {
  font-size: 13px;
  color: #9f7449;
}
.brand-mark svg {
  display: block;
  width: 32px;
  height: 32px;
}
.sidebar nav {
  gap: 9px;
}
.sidebar nav button {
  font-size: 16px;
  color: #9c7248;
  border: 2px solid transparent;
  border-radius: 0;
}
.sidebar nav button.active {
  background: #f9e7c1;
  border-color: #bc8d52;
  box-shadow:
    inset 2px 2px #fff4d7,
    0 3px #9d713c33;
  clip-path: var(--pixel-cut);
  color: #845b33;
}
.sidebar nav button:hover {
  background: #f6dfb8;
}
.sidebar nav b {
  border-radius: 0;
  min-width: 18px;
  height: 18px;
  line-height: 18px;
  background: #b98589;
  color: #fff3d3;
  font-size: 12px;
}
.sidebar nav svg {
  width: 20px;
  height: 20px;
}
.side-bottom button {
  font-size: 14px;
  color: #9c754d;
}
header {
  border-bottom: 2px solid #d8b98d;
}
.breadcrumb,
.breadcrumb b {
  font-size: 16px;
  color: #9a6d41;
  font-weight: 500;
}
.connection {
  font-size: 14px;
  color: #9a6b3d;
  background: #ffedc9;
  border: 2px solid #c59b65;
  border-radius: 0;
  clip-path: var(--pixel-cut);
  box-shadow: inset 2px 2px #fff9e9;
  padding: 6px 11px;
}
.connection-dot {
  border-radius: 0;
  width: 6px;
  height: 6px;
}
.connection-dot.online {
  background: #80a463;
}
.pair-dots i {
  border-radius: 0;
  border-color: #fff4d6;
  background: #bba17c;
}
.pair-dots i + i {
  background: #b79dc7;
}
.world-meta {
  font-size: 12px;
  color: #ab8051;
}
.page-heading h1 {
  font-family: Pixelify, monospace;
  font-size: 32px;
  font-weight: 600;
  color: #85562e;
  letter-spacing: 0;
}
.page-heading p {
  font-size: 14px;
}
.panel {
  padding-top: 23px;
}
.eyebrow {
  font-size: 12px;
  color: #ac7f4b;
  letter-spacing: 0.3px;
}
.muted,
.small {
  color: #aa865c;
}
.small {
  font-size: 14px;
}
h2 {
  font-size: 25px;
  letter-spacing: 0;
  color: #936235;
}
h3 {
  font-size: 21px;
  letter-spacing: 0;
  color: #9b6c3e;
}
.card,
.world-stage,
.build-panel,
.post-card,
.wardrobe-stage,
.drawing-card,
.today-preview,
.pinned-preview,
dialog {
  border: 16px solid transparent;
  border-image-source: url("./assets/ui-frame.png");
  border-image-slice: 180 fill;
  border-image-width: 16px;
  border-image-repeat: stretch;
  border-radius: 0;
  background: #fff0d3;
  image-rendering: pixelated;
  box-shadow: 0 3px #9d6f3d1c;
}
.card {
  padding: 17px;
}
.post-card {
  padding: 15px;
}
.world-stage {
  padding: 0;
}
.stage-top {
  background: #f5dfb7;
  border-bottom: 2px solid #d7b27e;
  padding: 9px 13px;
  color: #a97a43;
  font-size: 14px;
}
.stage-top button {
  font-size: 14px;
  color: #a07542;
}
.stage-top #ambience,
.stage-top #couple-pose {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.stage-top svg {
  display: block;
  width: 15px;
  height: 15px;
}
.stage-top #world-options {
  min-width: 22px;
}
.stage-top .decor-toggle,
.stage-top .room-door {
  border-radius: 0;
  border: 2px solid #c59b61;
  background: #fff0cf;
  color: #9a6c3e;
  box-shadow: inset 1px 1px #fff8e3;
  clip-path: var(--pixel-cut);
  font-size: 13px;
}
.stage-top .room-door {
  padding: 5px 9px;
}
.stage-top .decor-toggle {
  padding: 5px 10px;
}
.stage-top i {
  border-radius: 0;
  background: #bc945e;
}
.stage-footer {
  border-top: 2px solid #d6b17a;
  background: #f2dcb3;
  color: #a67e4f;
  font-size: 12px;
  padding: 9px 12px;
}
.stage-footer button {
  font-size: 13px;
  color: #9c6e3e;
}
.canvas-wrap {
  background: #f3ebe0;
}
.scene-controls,
.atlas-badge {
  border-radius: 0;
  background: #fff1d0e8;
  border: 2px solid #c6a16c;
  clip-path: var(--pixel-cut);
  color: #a77a47;
}
.scene-controls span {
  font-size: 11px;
}
.scene-controls button {
  font-size: 18px;
}
.atlas-badge {
  font-size: 12px;
  padding: 6px 9px;
}
.atlas-badge span {
  color: #bf8b95;
}
.build-hint,
.canvas-cancel {
  border-radius: 0;
  border: 2px solid #c5a16b;
  background: #fff0cce8;
  font-size: 13px;
  clip-path: var(--pixel-cut);
  color: #a37946;
}
.build-panel {
  padding: 13px 9px;
}
.build-panel h2 {
  font-size: 24px;
  color: #9d6d3b;
}
.build-panel .eyebrow {
  font-size: 10px;
}
.build-panel .small {
  font-size: 13px;
}
.category-tabs {
  border-color: #dec08f;
  gap: 4px;
}
.category-tabs button {
  font-size: 12px;
  border-radius: 0;
  color: #b08a59;
  padding: 5px 7px;
}
.category-tabs button.active {
  background: #eed5a9;
  color: #9b6c3e;
  box-shadow: inset 0 -2px #c29a63;
}
.catalog-item {
  border-radius: 0;
  border: 2px solid #d5b27e;
  background: #fff2d7;
  color: #aa804b;
  font-size: 12px;
  clip-path: var(--pixel-cut);
  padding: 7px 3px 10px;
}
.catalog-item.selected {
  border-color: #bb8a9a;
  background: #f6dedc;
  box-shadow: inset 0 -3px #d5b0bb;
}
.catalog {
  gap: 8px;
  scrollbar-color: #be9863 #ead3aa;
}
.catalog canvas {
  max-width: 105px;
}
.room-tabs {
  border-radius: 0;
  border: 2px solid #ba915d;
  background: #e4c79a;
  padding: 4px;
  box-shadow: inset 1px 1px #f9e5bb;
  clip-path: var(--pixel-cut);
}
.room-tabs button {
  font-size: 15px;
  border-radius: 0;
  color: #a67a47;
  padding: 6px 25px;
}
.room-tabs button.active {
  background: #fff0d1;
  color: #98693b;
  box-shadow:
    inset -2px -2px #d1ad78,
    inset 2px 2px #fff9e9;
}
.primary,
.secondary {
  font-size: 16px;
  line-height: 1.25;
  min-height: 42px;
  border-radius: 0;
  clip-path: var(--pixel-cut);
  border: 2px solid #ac7c45;
  background: #cba06a;
  box-shadow:
    inset 2px 2px #eccc94,
    inset -2px -3px #aa7a43;
  color: #fff3d6;
  padding: 10px 16px;
}
.primary:hover {
  background: #c09764;
}
.secondary {
  background: #f5e0b5;
  border-color: #c39a64;
  box-shadow:
    inset 2px 2px #fff6da,
    inset -2px -3px #dbb985;
  color: #a27643;
}
.plain-button,
.text-link {
  font-size: 14px;
  color: #ae7e50;
}
.plain-button:hover,
.text-link:hover {
  color: #875a31;
}
.home-quick {
  gap: 9px;
}
.home-quick button {
  border-radius: 0;
  border: 2px solid #c9a16e;
  clip-path: var(--pixel-cut);
  background: #fff0d0;
  box-shadow:
    inset 2px 2px #fff8e4,
    inset -2px -2px #e6c995;
  font-size: 15px;
  color: #a27a49;
}
.home-quick svg {
  width: 20px;
  height: 20px;
}
.home-quick button > span {
  color: #b18c77;
}
.today-preview,
.pinned-preview {
  padding: 15px 16px;
}
.today-preview h2,
.pinned-preview h2 {
  font-family: Pixelify, monospace;
  font-size: 23px;
  letter-spacing: 0;
  color: #9d6d3d;
}
.today-preview .eyebrow,
.pinned-preview .eyebrow {
  font-size: 11px;
}
.today-preview .text-link,
.pinned-preview .text-link {
  font-size: 14px;
  color: #b08455;
}
.selection-bar {
  border-top: 2px solid #c5a16c;
  background: #eed3ab;
  padding: 10px;
  font-size: 13px;
  color: #a27645;
}
.selection-bar button {
  font-size: 13px;
  border: 2px solid #c4a06b;
  background: #fff0d1;
  box-shadow: inset 1px 1px #fff9e8;
  clip-path: var(--pixel-cut);
  border-radius: 0;
  padding: 5px 9px;
}
.item-paint {
  font-size: 12px;
}
.item-paint input {
  height: 30px;
  width: 32px;
  border: 2px solid #c4a06b;
  border-radius: 0;
}
.tag {
  border-radius: 0;
  background: #f0d8b2;
  color: #ad7d46;
  box-shadow: inset 0 -2px #ddbc88;
  font-size: 12px;
}
.moods {
  gap: 6px;
}
.mood {
  border-radius: 0;
  border: 2px solid #d1af7b;
  background: #fff1d3;
  color: #ad8450;
  font-size: 12px;
  padding: 10px 3px;
  clip-path: var(--pixel-cut);
}
.mood > span {
  font-size: 26px;
  color: #bd9968;
}
.mood.active {
  background: #efd4da;
  border-color: #be91a0;
  color: #a9778b;
}
.mood.active > span {
  color: #b7859b;
}
.chip-options button {
  font-size: 13px;
  border-radius: 0;
  border: 2px solid #d3b583;
  background: #fff1d4;
  padding: 6px 9px;
  clip-path: var(--pixel-cut);
  color: #ac8550;
}
.chip-options button.active {
  background: #e6d9ed;
  border-color: #bba1ce;
  color: #a588ba;
}
label,
legend {
  font-size: 16px;
  color: #ab7d4c;
  font-weight: 400;
}
.form-caption {
  font-size: 12px;
  color: #b28b5c;
  line-height: 1.6;
}
input,
textarea,
select {
  border-radius: 0;
  border: 2px solid #c9a16b;
  background: #fff3d8;
  color: #a27b4c;
  font-size: 16px;
  padding: 10px 11px;
  box-shadow: inset 2px 2px #e6cd9c;
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #b99ac6;
  outline-offset: 2px;
}
input[type="range"] {
  box-shadow: none;
  accent-color: #bd95a1;
  border: 0;
  background: none;
}
select {
  appearance: none;
  padding-right: 32px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23b08b56' d='M2 4h12v2H2zm2 2h8v2H4zm2 2h4v2H6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 16px;
  background-position: right 9px center;
}
label output {
  font-size: 14px;
}
.inline-form {
  border-radius: 0;
  border: 2px solid #caa571;
  background: #ffefd0;
}
.inline-form input {
  box-shadow: none;
}
.inline-form button {
  background: #e5c591;
  color: #aa7c45;
}
.goal-toggle {
  font-size: 15px;
  color: #ad8653;
}
.goal-toggle i {
  border-radius: 0;
  border: 2px solid #cbaa76;
  background: #fff1d5;
}
.goal-toggle.done i {
  background: #d5ddb6;
  color: #9aa36c;
}
.goal {
  border-color: #dcbc8e;
}
.goal > button:last-child {
  font-size: 18px;
  color: #bf9e6f;
}
.user-text {
  font-size: 16px;
  line-height: 1.6;
  color: #9e7d52;
}
.post-card h2 {
  font-family: Pixelify, monospace;
  font-size: 23px;
  letter-spacing: 0;
  color: #a47842;
}
.post-card .user-text {
  font-size: 16px;
}
.post-meta {
  font-size: 13px;
  color: #b49060;
  gap: 8px;
}
.post-meta time {
  font-size: 11px;
  color: #b8986c;
}
.post-face {
  width: 28px;
  height: 28px;
  image-rendering: pixelated;
  flex-shrink: 0;
}
.post-actions {
  border-color: #ddc397;
}
.post-actions button {
  font-size: 14px;
  color: #b18c58;
}
.post-actions .hearted {
  color: #ba849c;
}
.post-filters {
  border-bottom: 2px solid #d7b787;
  gap: 17px;
}
.post-filters button {
  font-size: 15px;
  color: #b08a56;
}
.post-filters button.active {
  color: #a47a46;
  border-bottom: 3px solid #bd91a0;
}
.expressions > button {
  border-radius: 0;
  clip-path: var(--pixel-cut);
  border: 2px solid #d4b583;
  background: #fff0d5;
  color: #ae8651;
  font-size: 13px;
}
.expression-card {
  background: #fff0d5;
}
.expression-card .eyebrow {
  font-size: 13px;
}
.expression-preview {
  border: 2px solid #d5b587;
  background: #fff1d6;
}
.empty-state {
  border-radius: 0;
  border: 2px dashed #d1ae7b;
  background: #fff0d1;
}
.empty-state h2 {
  font-family: Pixelify, monospace;
  font-size: 23px;
  color: #ae8450;
}
.empty-state p {
  font-size: 14px;
  color: #b99666;
}
.empty-partner h3 {
  font-size: 21px;
  color: #ab8250;
}
.empty-partner p {
  font-size: 14px;
  color: #b5905c;
}
.avatar-circle {
  width: 40px;
  height: 40px;
  border-radius: 0;
  border: 2px solid #c5a878;
  background: #f9e9ca;
  box-shadow: inset 1px 1px #fff8e8;
}
.avatar-circle canvas {
  width: 36px;
  height: 36px;
  image-rendering: pixelated;
}
.shared-mood h3 {
  font-size: 27px;
}
.shared-mood > span {
  color: #b591bc;
}
.energy-dots i {
  border-radius: 0;
  height: 7px;
  background: #ebd4ad;
}
.energy-dots .filled {
  background: #c4a379;
}
.partner-extras span {
  border-radius: 0;
  clip-path: var(--pixel-cut);
  border: 2px solid #c5acd2;
  background: #ebdfef;
  font-size: 13px;
  color: #a88bb9;
}
.day-entry {
  border-color: #ddbf91;
}
.day-entry p {
  font-size: 14px;
}
.answer {
  border-color: #dfc699;
}
.answer .user-text {
  font-size: 15px;
}
.answer .eyebrow {
  font-size: 12px;
}
.question-card h2 {
  font-family: Pixelify, monospace;
  font-size: 25px;
  line-height: 1.4;
  color: #a17d57;
}
.question-card .primary {
  background: #b8a4c1;
  border-color: #a08baa;
  box-shadow:
    inset 2px 2px #d2bfdb,
    inset -2px -3px #9981a7;
  color: #fff4df;
}
.event-date {
  border-radius: 0;
  border: 2px solid #cba16c;
  background: #ffedc8;
  box-shadow: inset 2px 2px #fff8e0;
  color: #b08a53;
}
.event-date b {
  font-family: Pixelify, monospace;
  font-size: 29px;
}
.event-date span {
  font-size: 12px;
}
.event h3 {
  font-size: 21px;
}
.event {
  border-color: #dec194;
}
.event .small {
  font-size: 13px;
}
.gesture-buttons button {
  font-size: 14px;
  border-radius: 0;
  clip-path: var(--pixel-cut);
  border: 2px solid #d0b080;
  background: #fff0d3;
  color: #af8750;
  line-height: 1.4;
  padding: 12px 7px;
}
.gesture-buttons button > span {
  color: #bd91a7;
}
.gesture-row {
  border-color: #ddbf91;
}
.gesture-row b {
  font-size: 15px;
  color: #ac814b;
}
.gesture-row small {
  font-size: 12px;
  color: #bb996b;
}
.gesture-row i {
  font-size: 12px;
  color: #b78a9e;
}
.gesture-arrival {
  border-radius: 0;
  border: 3px solid #c29a77;
  background: #fff1d4;
  box-shadow: 4px 4px #9c70422b;
}
.gesture-arrival strong {
  font-family: Pixelify, monospace;
  font-size: 19px;
  color: #b0809b;
}
.gesture-arrival small {
  font-size: 11px;
  color: #ba91a7;
}
.gesture-arrival button {
  border-radius: 0;
  border: 2px solid #caa6b3;
  background: #f6e2e1;
  font-size: 14px;
  color: #b18397;
}
.look-grid button {
  border-radius: 0;
  clip-path: var(--pixel-cut);
  border: 2px solid #d2b07b;
  background: #fff0d4;
  font-size: 15px;
  color: #b08a55;
}
.look-grid button.selected {
  border-color: #b79bc8;
  background: #eaddf1;
  color: #a087b7;
}
.wardrobe-stage .eyebrow {
  font-size: 12px;
}
.studio-controls h2,
.pets-wardrobe h2 {
  font-family: Pixelify, monospace;
  font-size: 26px;
  color: #a37540;
}
.drawing-toolbar {
  font-size: 12px;
  letter-spacing: 0;
  color: #b28a54;
}
.drawing-toolbar button {
  font-size: 14px;
}
.swatch {
  border-radius: 0;
  width: 27px;
  height: 27px;
  border: 3px solid #fff0ce;
  box-shadow: 1px 1px #ae8e6244;
}
.swatch.active {
  outline: 2px solid #ac7e97;
  outline-offset: 2px;
}
.drawing-card {
  background: #ffefd1;
}
#drawing,
#mural {
  border-radius: 0;
  border: 2px solid #cda675;
}
#mural {
  box-shadow: inset 2px 2px #e3c99c;
}
.game-footer {
  font-size: 14px;
  color: #b08a56;
}
.puzzle-board {
  border-radius: 0;
  border: 3px solid #b78f5c;
  background: #d5b88f;
  box-shadow: inset 3px 3px #c7a477;
}
.puzzle-tile {
  border-radius: 0;
  border: 1px solid #c9a16c;
  box-shadow: 0 2px #ab804e;
}
.puzzle-tile.blank {
  background: #caac83;
  border: 1px solid #bc9767;
  box-shadow: inset 2px 2px #b48d5d;
}
.puzzle-tile small {
  border-radius: 0;
  font-family: Pixelify, monospace;
  font-size: 11px;
  color: #b09262;
  background: #fff0d2c9;
}
.puzzle-choices button {
  border-radius: 0;
  border: 2px solid #d1b27f;
  background: #fff1d6;
  clip-path: var(--pixel-cut);
  font-size: 14px;
}
.puzzle-empty .primary {
  font-size: 16px;
}
.puzzle-original {
  border: 2px solid #cfac77;
}
.mural-card .tag {
  font-size: 11px;
}
.mural-actions .secondary {
  font-size: 14px;
}
.pose-option,
.palette-choice,
.layout-options button {
  border-radius: 0;
  border: 2px solid #d0ae77;
  background: #fff0d2;
  clip-path: var(--pixel-cut);
  font-size: 15px;
  color: #ac824b;
}
.palette-choice.active {
  border-color: #bb93a5;
  background: #f2dddd;
}
.palette-choice span {
  border-radius: 0;
  border: 1px solid #c5a579;
}
.pose-options,
.palette-choices,
.layout-options {
  gap: 12px;
}
.layout-options small {
  font-size: 13px;
  color: #bb9767;
}
.house-colors button {
  font-size: 13px;
}
.modal-title {
  font-family: Pixelify, monospace;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0;
  color: #9e6f39;
}
dialog {
  padding: 21px;
  max-width: 520px;
}
dialog::backdrop {
  backdrop-filter: none;
  background: #56432f80;
}
dialog p {
  font-size: 15px;
  color: #b08a57;
}
.close {
  font-family: Pixelify, monospace;
  color: #b38751;
  font-size: 27px;
  right: 9px;
  top: 3px;
}
.copy-row input {
  font-size: 13px;
}
.toast {
  font-family: Pixelify, monospace;
  font-size: 15px;
  border-radius: 0;
  border: 3px solid #a57c4e;
  background: #ecd1a3;
  color: #9b703c;
  box-shadow: 3px 3px #8a623c2a;
  clip-path: var(--pixel-cut);
}
.brand-sub:empty {
  display: none;
}
.empty-mini {
  font-size: 40px;
  color: #c3a171;
}
.empty-mini p {
  font-size: 14px;
  color: #b3905d;
}
@media (max-width: 700px) {
  body {
    font-size: 16px;
  }
  main {
    padding: 0 10px calc(142px + env(safe-area-inset-bottom));
    max-width: 560px;
  }
  .sidebar {
    padding: 5px 7px calc(8px + env(safe-area-inset-bottom));
    border: 3px solid #ba8d54;
    border-left: 0;
    border-right: 0;
    background: #ebd2aa;
    box-shadow: inset 0 3px #fae8c2;
    backdrop-filter: none;
  }
  .sidebar nav {
    gap: 3px;
  }
  .sidebar nav button {
    font-size: 13px;
    padding: 5px 2px;
    line-height: 1.3;
    border-width: 2px;
    min-height: 57px;
  }
  .sidebar nav button.active {
    background: #fff0d0;
  }
  .sidebar nav b {
    font-size: 10px;
    min-width: 14px;
    height: 14px;
    line-height: 14px;
  }
  .sidebar nav svg {
    width: 20px;
    height: 20px;
  }
  .brand-mark svg {
    width: 28px;
    height: 28px;
  }
  header {
    height: 66px;
    border-bottom: 2px solid #d6b787;
  }
  .breadcrumb,
  .breadcrumb b {
    font-size: 16px;
  }
  .connection {
    font-size: 12px;
    padding: 5px 9px;
  }
  .connection > span:last-child {
    font-size: 13px;
  }
  .panel {
    padding-top: 14px;
  }
  .page-heading h1 {
    font-size: 28px;
  }
  .page-heading {
    margin-bottom: 15px;
  }
  .page-heading .primary {
    font-size: 14px;
    min-height: 37px;
  }
  .world-meta {
    font-size: 10px;
    gap: 4px;
  }
  .world-meta .pair-dots i {
    width: 14px;
    height: 14px;
  }
  .card,
  .world-stage,
  .build-panel,
  .post-card,
  .wardrobe-stage,
  .drawing-card,
  .today-preview,
  .pinned-preview,
  dialog {
    border-width: 12px;
    border-image-width: 12px;
  }
  .card {
    padding: 13px;
  }
  .world-stage {
    padding: 0;
  }
  .stage-top {
    flex-wrap: wrap;
    padding: 7px 9px;
    font-size: 13px;
    gap: 6px;
  }
  .stage-top .room-door {
    font-size: 12px;
    padding: 4px 8px;
    min-height: 29px;
  }
  .stage-top > div {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 7px;
    padding-top: 6px;
    border-top: 1px solid #dabe91;
  }
  .stage-top button {
    font-size: 13px;
  }
  .stage-top .decor-toggle {
    font-size: 13px;
    min-height: 31px;
    padding: 4px 10px;
  }
  .stage-top svg {
    width: 15px;
    height: 15px;
  }
  .stage-top #world-options {
    min-width: 23px;
  }
  .stage-top #motion-toggle {
    font-size: 20px;
    width: 24px;
  }
  .stage-footer {
    font-size: 11px;
    padding: 8px 9px;
  }
  .stage-footer button {
    font-size: 12px;
  }
  .room-tabs {
    margin-top: 1px;
    padding: 3px;
  }
  .room-tabs button {
    font-size: 15px;
    padding: 6px 23px;
  }
  .atlas-badge {
    font-size: 11px;
    padding: 5px 8px;
  }
  .scene-controls span {
    font-size: 10px;
  }
  .scene-controls button {
    font-size: 17px;
  }
  .scene-controls {
    right: 8px;
    bottom: 10px;
  }
  .atlas-badge {
    left: 8px;
    bottom: 10px;
  }
  .build-hint {
    font-size: 12px;
    padding: 6px 9px;
    bottom: 53px;
  }
  .canvas-cancel {
    font-size: 12px;
    padding: 6px 9px;
  }
  .home-quick {
    gap: 6px;
    margin-top: 15px;
  }
  .home-quick button {
    font-size: 14px;
    padding: 10px 3px;
    gap: 7px;
  }
  .home-quick svg {
    width: 19px;
    height: 19px;
  }
  .today-preview,
  .pinned-preview {
    padding: 12px;
  }
  .today-preview h2,
  .pinned-preview h2 {
    font-size: 23px;
  }
  .today-preview .eyebrow,
  .pinned-preview .eyebrow {
    font-size: 11px;
  }
  .today-preview .text-link,
  .pinned-preview .text-link {
    font-size: 14px;
  }
  .decor-open .build-panel {
    bottom: calc(96px + env(safe-area-inset-bottom));
    width: calc(100% - 14px);
    padding: 10px 7px;
    max-width: 540px;
    border-radius: 0;
    box-shadow: 0 -4px #a77c4b24;
  }
  .build-panel h2 {
    font-size: 24px;
  }
  .build-panel-title .eyebrow {
    font-size: 10px;
  }
  .category-tabs {
    gap: 3px;
    margin: 10px 0;
  }
  .category-tabs button {
    font-size: 12px;
    padding: 4px 6px;
  }
  .catalog {
    max-height: 230px;
    gap: 6px;
  }
  .catalog-item {
    font-size: 11px;
    padding: 5px 2px 8px;
    line-height: 1.3;
  }
  .catalog-item canvas {
    max-width: 80px;
  }
  .selection-bar {
    gap: 5px;
    padding: 7px;
  }
  .selection-bar > span {
    font-size: 12px;
  }
  .selection-bar button {
    font-size: 12px;
    padding: 5px 7px;
  }
  .item-paint {
    font-size: 11px;
  }
  .item-paint input {
    height: 27px;
    width: 27px;
  }
  .moods {
    gap: 5px;
  }
  .mood {
    font-size: 11px;
    padding: 8px 2px;
  }
  .mood > span {
    font-size: 25px;
  }
  .chip-options {
    gap: 6px;
  }
  .chip-options button {
    font-size: 13px;
    padding: 6px 8px;
  }
  label,
  legend {
    font-size: 16px;
  }
  .form-caption {
    font-size: 12px;
  }
  .primary,
  .secondary {
    font-size: 16px;
    min-height: 43px;
  }
  .text-link,
  .plain-button {
    font-size: 14px;
  }
  .tag {
    font-size: 12px;
  }
  .card h2 {
    font-size: 24px;
  }
  .goal-toggle {
    font-size: 15px;
  }
  .user-text,
  .post-card .user-text {
    font-size: 16px;
  }
  .partner-extras span {
    font-size: 13px;
  }
  .shared-mood h3 {
    font-size: 27px;
  }
  .avatar-circle {
    width: 36px;
    height: 36px;
  }
  .avatar-circle canvas {
    width: 32px;
    height: 32px;
  }
  .expression-card {
    padding: 11px 8px;
  }
  .expressions {
    gap: 7px;
  }
  .expressions > button {
    font-size: 13px;
    padding: 7px 3px;
    gap: 5px;
  }
  .expressions canvas {
    max-width: 95px;
  }
  .post-filters {
    gap: 13px;
    margin: 22px 0 17px;
  }
  .post-filters button {
    font-size: 14px;
    padding-bottom: 10px;
  }
  .post-card {
    padding: 13px;
  }
  .post-card h2 {
    font-size: 24px;
  }
  .post-meta {
    font-size: 12px;
  }
  .post-meta time {
    font-size: 10px;
  }
  .post-face {
    width: 26px;
    height: 26px;
  }
  .post-actions button {
    font-size: 14px;
    min-height: 28px;
  }
  .empty-state {
    padding: 28px 12px;
  }
  .empty-state h2 {
    font-size: 23px;
  }
  .empty-state p {
    font-size: 14px;
  }
  .gesture-card {
    padding: 13px 8px;
  }
  .gesture-buttons {
    gap: 6px;
  }
  .gesture-buttons button {
    font-size: 12px;
    min-height: 93px;
    padding: 10px 3px;
    gap: 8px;
    line-height: 1.35;
  }
  .gesture-buttons button > span {
    font-size: 27px;
  }
  .question-card h2 {
    font-size: 25px;
  }
  .question-card .section-top .eyebrow {
    font-size: 11px;
  }
  .event h3 {
    font-size: 21px;
  }
  .event-date b {
    font-size: 28px;
  }
  .event-date span {
    font-size: 11px;
  }
  .gesture-row b {
    font-size: 15px;
  }
  .gesture-row small {
    font-size: 11px;
  }
  .gesture-row i {
    font-size: 11px;
  }
  .look-grid {
    gap: 10px;
  }
  .look-grid button {
    font-size: 15px;
    padding: 9px 5px;
  }
  .look-grid canvas {
    max-width: 125px;
  }
  .wardrobe-stage {
    padding: 12px;
  }
  .wardrobe-stage .eyebrow {
    font-size: 12px;
  }
  .wardrobe-stage canvas {
    max-width: 250px;
  }
  .pets-wardrobe h2 {
    font-size: 27px;
  }
  .drawing-card {
    padding: 12px;
  }
  .drawing-toolbar {
    font-size: 10px;
  }
  .drawing-toolbar button {
    font-size: 14px;
  }
  .swatches {
    gap: 10px;
  }
  .swatch {
    width: 27px;
    height: 27px;
  }
  .studio-controls .plain-button {
    font-size: 14px;
  }
  .mural-card .tag {
    font-size: 11px;
  }
  .game-footer {
    font-size: 14px;
  }
  .puzzle-tile small {
    font-size: 10px;
  }
  .puzzle-choices button {
    font-size: 13px;
    padding: 6px;
  }
  .mural-actions .secondary {
    font-size: 14px;
  }
  .toast,
  .gesture-arrival {
    bottom: calc(116px + env(safe-area-inset-bottom));
  }
  .toast {
    font-size: 14px;
    padding: 10px 13px;
  }
  .gesture-arrival {
    gap: 8px;
    padding: 10px;
    border-width: 3px;
  }
  .gesture-arrival strong {
    font-size: 17px;
  }
  .gesture-arrival small {
    font-size: 10px;
  }
  .gesture-arrival button {
    font-size: 12px;
    padding: 6px;
  }
  .gesture-arrival .arrival-art {
    width: 48px;
    height: 48px;
  }
  .copy-row input {
    font-size: 12px;
  }
  .copy-row .secondary {
    font-size: 15px;
    min-height: 37px;
  }
  dialog {
    padding: 16px;
    max-width: 500px;
  }
  .modal-title {
    font-size: 27px;
  }
  dialog p {
    font-size: 15px;
  }
  .close {
    top: 2px;
    right: 5px;
  }
  .palette-choice {
    font-size: 15px;
    min-height: 44px;
  }
  .house-colors button {
    font-size: 13px;
  }
  .layout-options small {
    font-size: 13px;
  }
  .pose-option {
    font-size: 14px;
  }
  .stage-top #ambience span,
  .stage-top #couple-pose span {
    display: inline;
  }
}
@media (max-width: 365px) {
  .sidebar nav button {
    font-size: 11px;
  }
  .home-quick button {
    font-size: 12px;
  }
  .catalog-item {
    font-size: 10px;
  }
  .category-tabs button {
    font-size: 11px;
  }
  .post-filters {
    gap: 9px;
  }
  .post-filters button {
    font-size: 13px;
  }
  .mood {
    font-size: 10px;
  }
  .gesture-buttons button {
    font-size: 11px;
  }
  .puzzle-choices button {
    font-size: 11px;
  }
  .stage-top .decor-toggle {
    padding: 4px 7px;
  }
  .world-meta {
    font-size: 9px;
  }
}
