.hc .btn,
.hc .icon-btn,
.hc .tab,
.hc .card,
.hc .row,
.hc .item,
.hc .chip,
.hc .reward,
.hc .glass,
.hc .need-ring,
.hc .act-btn,
.hc .seg > button,
.hc .rail-btn small,
.hc .sheet,
.hc .modal {
  box-shadow: inset 0 0 0 2px var(--line-strong);
}

.hc .btn.primary,
.hc .btn.pop,
.hc .btn.gem,
.hc .btn.gold,
.hc .btn.danger,
.hc .btn.premium,
.hc .tab.on,
.hc .seg > button.on {
  box-shadow: inset 0 0 0 2px var(--line-strong), inset 0 0 0 4px var(--surface);
}

.hc .muted,
.hc small {
  color: inherit;
}

.hc .bar,
.hc .ring .track {
  box-shadow: inset 0 0 0 2px var(--line-strong);
}

.hc .ring .track {
  stroke: var(--surface-3);
}

.hc #bubble,
.hc #toast {
  box-shadow: 0 0 0 2px var(--line-strong);
}

.reduce-flash *,
.reduce-flash *::before,
.reduce-flash *::after {
  animation-iteration-count: 1 !important;
}

.reduce-flash .skel i {
  animation: none !important;
}

#hud :focus-visible,
#game-hud :focus-visible,
#game-dom :focus-visible {
  outline-color: var(--focus);
  box-shadow: 0 0 0 6px var(--focus-halo), 0 0 0 9px var(--surface);
}

.tabs > .tab:focus-visible,
.cl-achhead:focus-visible,
.cl-wslots > :focus-visible,
.gz-ptray > :focus-visible,
.hud-rail .rail-btn:focus-visible,
.ptrack :focus-visible {
  outline-offset: var(--focus-inset);
}

.scroll:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 var(--focus-w) var(--focus);
}

[role='dialog']:focus-visible,
[role='dialog'] h1:focus-visible,
[role='dialog'] h2:focus-visible,
[role='dialog'] h3:focus-visible {
  outline: none;
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  .need-tile.urgent .need-ring,
  .skel i {
    animation: none;
  }
}

.set-row,
.set-link {
  gap: var(--sp-3);
}

.set-row b,
.set-link b {
  font-size: var(--fs-m);
  line-height: var(--lh-tight);
}

.set-row small,
.set-link small,
.set-card small {
  color: var(--ink-soft);
  font-size: var(--fs-s);
  line-height: var(--lh);
}

.set-row.is-off {
  opacity: 0.6;
}

.set-ic {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: var(--r-s);
  display: grid;
  place-items: center;
  background: var(--accent-soft);
  color: var(--accent-ink);
}

.set-chev {
  color: var(--ink-soft);
  display: grid;
  place-items: center;
}

.set-card {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.set-card + .set-card,
.set-gap {
  margin-top: var(--sp-2);
}

.list + .set-card,
.set-card + .list {
  margin-top: var(--sp-2);
}

.set-seg {
  margin-top: var(--sp-1);
}

.seg-cb {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.seg-cb > button {
  padding: var(--sp-2) var(--sp-3);
}

.set-select {
  margin-top: var(--sp-1);
}

.set-text-head {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}

.set-text-head .grow {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.set-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  padding: var(--sp-1);
  border-radius: var(--r-pill);
  background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--line-strong);
}

.set-stepper .icon-btn {
  background: var(--accent);
  color: var(--on-accent);
  box-shadow: var(--btn-shine);
}

.set-stepper .icon-btn[disabled] {
  background: var(--surface-3);
  color: var(--ink-soft);
  box-shadow: none;
  opacity: 0.7;
}

.set-text-val {
  font-size: var(--fs-l);
  flex: 1;
  text-align: center;
}

.set-sample {
  font-size: var(--fs-m);
  font-weight: var(--fw-b);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--r-m);
  background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--line);
}

.set-swatches {
  display: flex;
  gap: var(--sp-2);
  margin-top: var(--sp-1);
}

.set-sw {
  flex: 1;
  height: 12px;
  border-radius: var(--r-pill);
  background: linear-gradient(90deg, var(--n1), var(--n2));
}

.set-sw.need-water { --n1: var(--need-water); --n2: var(--need-water-2); }
.set-sw.need-sun { --n1: var(--need-sun); --n2: var(--need-sun-2); }
.set-sw.need-food { --n1: var(--need-food); --n2: var(--need-food-2); }
.set-sw.need-joy { --n1: var(--need-joy); --n2: var(--need-joy-2); }
.set-sw.need-love { --n1: var(--need-love); --n2: var(--need-love-2); }
.set-sw.need-health { --n1: var(--health); --n2: var(--health-2); }

.set-note {
  margin-top: var(--sp-2);
  padding: var(--sp-3);
  border-radius: var(--r-m);
  background: var(--warn-soft);
  color: var(--ink);
  font-size: var(--fs-s);
}

.set-about .btn {
  white-space: normal;
}

.set-ver {
  display: block;
  margin-top: var(--sp-2);
  text-align: center;
  color: var(--ink-soft);
  font-size: var(--fs-xs);
}

.text-l .btn {
  padding-inline: var(--sp-3);
}

.text-l .btn:has(> .bb-label),
.text-l .sub-card,
.text-l .gz-wbottom {
  flex-wrap: wrap;
}

.text-l .gz-wshare {
  order: -1;
  flex-basis: 100%;
}

.text-l .cl-wrw,
.text-l .sub-copy {
  min-width: auto;
}

.text-l .status {
  white-space: normal;
}

.text-l .fr-add-row {
  flex-wrap: wrap;
}

.text-l .fr-add-row .text {
  flex-basis: 100%;
}

.text-l .mt-node small {
  display: none;
}

.text-l #game-dom .g-builder-rules {
  overflow-x: auto;
  scrollbar-width: none;
  touch-action: pan-x;
}

.text-l .gz-wtop {
  flex-wrap: wrap;
}

.text-l .gz-wtop .gz-top-title {
  order: 1;
  flex-basis: 100%;
}

.text-l #game-dom {
  hyphens: auto;
}
