:root {
  --radius-control: 6px;
  --radius-panel: 8px;
  --focus-ring: #5f5f5b;
}

html {
  -webkit-tap-highlight-color: rgba(37, 37, 37, 0.12);
}

button,
a,
input,
textarea,
select {
  touch-action: manipulation;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 2px;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p,
small,
label,
code {
  overflow-wrap: anywhere;
}

.form-intro,
.artist-intro,
.feedback-intro {
  padding-inline: 16px;
}

.form-intro h1,
.artist-intro h1,
.feedback-intro h1 {
  font-size: 34px;
  line-height: 1.14;
}

input,
textarea,
select,
.choice-grid label,
.chip-grid label,
.radio-list label,
.visual-options button,
.upload-box,
.inline-upload,
.share-link,
.feedback-link,
.generate-button,
.export-button,
.bottom-actions button,
.artist-bottom a,
.artist-bottom button,
.score-row span {
  border-radius: var(--radius-control);
}

.quiet-button,
.quiet-link,
.top-actions a {
  min-width: 44px;
  min-height: 44px;
  display: inline-grid;
  place-items: center;
}

.step-nav button,
.choice-grid label,
.chip-grid label,
.group-switches label,
.radio-list label,
.required-toggle,
.feedback-link,
.add-field-button,
.feedback-result button,
.share-link button,
.editable-row button,
.custom-field-item button {
  min-height: 44px;
}

.score-row span {
  height: 44px;
}

.share-link button,
.editable-row button,
.custom-field-item button {
  min-width: 44px;
}

.share-link button:disabled {
  color: var(--muted);
  cursor: default;
  text-decoration: none;
}

.artist-section {
  margin: 0;
  padding: 24px 16px;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
}

.artist-section-title {
  padding-bottom: 12px;
}

.form-step fieldset {
  gap: 12px;
}

.form-step fieldset > .help {
  margin: 8px 0 4px;
}

.mini-note,
.note-preview,
.feedback-result {
  border-radius: var(--radius-panel);
}

.creator-credit {
  margin: 20px 16px 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.home-footer .creator-credit {
  margin: 4px 0 0;
  padding-top: 0;
  border-top: 0;
}

.form-step .creator-credit {
  margin-inline: 0;
}

@media (hover: hover) {
  .secondary-action:hover,
  .feedback-link:hover,
  .artist-bottom a:hover,
  .bottom-actions button:first-child:hover,
  .quiet-button:hover,
  .quiet-link:hover,
  .top-actions a:hover {
    background: var(--soft);
  }

  .primary-action:hover,
  .generate-button:hover,
  .artist-bottom button:hover,
  .bottom-actions button:last-child:hover {
    background: #111;
  }

  .choice-grid label:hover,
  .chip-grid label:hover,
  .group-switches label:hover,
  .radio-list label:hover,
  .visual-options button:hover {
    border-color: #a8a8a3;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .toast {
    transition: none;
  }
}
