@import url("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/codemirror.min.css");
@import url("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.16/theme/base16-dark.min.css");

:root {
  --surface: #1d1a19;
  --code-bg: #100f0e;
  --success: #9aaa94;
  --focus-offset: 3px;
}

* {
  box-sizing: border-box;
}

body {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  line-height: 1.6;
}

button:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: var(--focus-offset);
}

.back-link {
  display: inline-block;
  font-size: 0.9rem;
}

h1 {
  margin: 0;
  color: var(--fg);
  font-size: clamp(1.35rem, 4vw, 1.8rem);
  line-height: 1.25;
}

.lead {
  margin: 0.65rem 0 1.5rem;
  color: var(--fg-muted);
}

.notes {
  margin: 0 0 1.5rem;
  padding-left: 1rem;
  color: var(--fg-soft);
}

.notes li + li {
  margin-top: 0.35rem;
}

.code-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.45rem;
}

.code-label {
  color: var(--fg-soft);
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.copy-button {
  padding: 0;
  border: 0;
  color: var(--text-link);
  background: transparent;
  font: inherit;
  font-size: 0.85rem;
  text-decoration: underline;
  cursor: pointer;
}

.copy-button:hover {
  color: var(--link-hover);
}

.copy-button[data-state="success"] {
  color: var(--success);
}

.code-source {
  display: block;
  width: 100%;
  min-height: 24rem;
  margin: 0;
  padding: 1rem;
  resize: vertical;
  border: 1px solid var(--border);
  border-radius: 3px;
  color: #d2d0c8;
  background: var(--code-bg);
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 0.82rem;
  line-height: 1.55;
  tab-size: 2;
  white-space: pre;
}

.CodeMirror {
  min-height: 24rem;
  height: auto;
  border: 1px solid var(--border);
  border-radius: 3px;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 0.82rem;
  line-height: 1.55;
}

.cm-s-base16-dark .CodeMirror-gutters {
  border-right: 1px solid var(--border);
}

.CodeMirror-scroll {
  min-height: 24rem;
}

@media (max-width: 520px) {
  body {
    padding: 16px;
  }

  .code-toolbar {
    align-items: flex-end;
  }

  .code-source {
    min-height: 22rem;
  }

  .CodeMirror,
  .CodeMirror-scroll {
    min-height: 22rem;
  }
}

