/* Hallmark · genre: modern-minimal · macrostructure: Workbench · theme: MAC LEE locked tokens · enrichment: live language bridge · nav: existing · footer: existing
 * audience: Polish self-employed and small UK businesses
 * use: create a ready-to-send English customer reply
 * tone: practical, confident, human
 * Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V5
 */
.reply-tool-page {
  --reply-paper: var(--color-base);
  --reply-ink: var(--color-dark);
  --reply-night: var(--color-dark-deep);
  --reply-cyan: var(--color-accent-blue);
  --reply-lime: var(--color-accent-lime);
  --reply-muted: var(--color-text-muted);
  --reply-light: var(--color-text-light);
  color: var(--reply-ink);
  background: var(--reply-paper);
}

html,
body.reply-tool-page {
  overflow-x: clip;
}

.reply-tool-page *,
.reply-tool-page *::before,
.reply-tool-page *::after {
  box-sizing: border-box;
}

.reply-kicker {
  margin: 0 0 var(--space-5);
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wider);
  line-height: 1.5;
  text-transform: uppercase;
}

.reply-hero {
  position: relative;
  min-height: min(880px, calc(100svh - 74px));
  padding: clamp(6.5rem, 10vw, 9.5rem) 0 clamp(5rem, 8vw, 8rem);
  overflow: hidden;
  color: var(--reply-light);
  background:
    radial-gradient(circle at 7% 94%, rgba(var(--color-accent-blue-rgb), .2), transparent 31%),
    radial-gradient(circle at 91% 10%, rgba(var(--color-accent-lime-rgb), .17), transparent 29%),
    var(--reply-night);
  isolation: isolate;
}

.reply-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(rgba(var(--color-white-rgb), .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--color-white-rgb), .045) 1px, transparent 1px);
  background-size: 52px 52px;
  content: "";
  mask-image: linear-gradient(90deg, var(--reply-night), rgba(var(--color-dark-rgb), .42) 76%, transparent);
}

.reply-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, .78fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: center;
}

.reply-hero__copy,
.reply-bridge,
.reply-section-head > *,
.reply-workbench__layout > *,
.reply-principles__layout > * {
  min-width: 0;
}

.reply-hero h1 {
  max-width: 840px;
  margin: 0;
  color: var(--reply-light);
  font-family: var(--font-heading);
  font-size: clamp(3.35rem, 7vw, 7.4rem);
  font-style: normal;
  font-weight: var(--weight-black);
  letter-spacing: -.074em;
  line-height: .89;
  overflow-wrap: anywhere;
}

.reply-hero h1 span {
  display: block;
  color: var(--reply-cyan);
}

.reply-hero__lead {
  max-width: 720px;
  margin: clamp(1.6rem, 3vw, 2.5rem) 0 0;
  color: rgba(var(--color-white-rgb), .72);
  font-size: clamp(1.08rem, 1.6vw, 1.34rem);
  line-height: 1.65;
}

.reply-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
  margin-top: var(--space-8);
}

.reply-action,
.reply-submit,
.reply-output__button,
.reply-output__reset {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--radius-full);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: var(--weight-black);
  letter-spacing: .045em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    transform var(--duration-base) var(--ease-out),
    box-shadow var(--duration-base) var(--ease-out),
    background-color var(--duration-base) var(--ease-out);
  white-space: nowrap;
}

.reply-action--primary,
.reply-submit,
.reply-output__button--primary {
  padding: 0 1.55rem;
  color: var(--reply-night);
  background: linear-gradient(105deg, var(--reply-cyan), var(--reply-lime));
  box-shadow: 0 18px 48px rgba(var(--color-accent-blue-rgb), .15);
}

.reply-action--quiet {
  padding: 0 1.35rem;
  color: var(--reply-light);
  border: 1px solid rgba(var(--color-white-rgb), .24);
  background: transparent;
}

.reply-action:hover,
.reply-action:focus-visible,
.reply-submit:hover,
.reply-submit:focus-visible,
.reply-output__button:hover,
.reply-output__button:focus-visible {
  box-shadow: 0 22px 54px rgba(var(--color-accent-blue-rgb), .22);
  transform: translateY(-3px);
}

.reply-action:active,
.reply-submit:active,
.reply-output__button:active {
  transform: translateY(0);
}

.reply-action:focus-visible,
.reply-submit:focus-visible,
.reply-choice input:focus-visible + span,
.reply-field input:focus-visible,
.reply-field select:focus-visible,
.reply-output__button:focus-visible,
.reply-output__reset:focus-visible,
.reply-faq summary:focus-visible {
  outline: 3px solid var(--reply-lime);
  outline-offset: 4px;
}

.reply-assurances {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.3rem;
  margin: var(--space-8) 0 0;
  padding: 0;
  color: rgba(var(--color-white-rgb), .66);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  list-style: none;
}

.reply-assurances li {
  position: relative;
  padding-left: 1.1rem;
}

.reply-assurances li::before {
  position: absolute;
  top: .5em;
  left: 0;
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--reply-lime);
  content: "";
  box-shadow: 0 0 18px rgba(var(--color-accent-lime-rgb), .55);
}

.reply-bridge {
  position: relative;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(var(--color-white-rgb), .17);
  border-radius: var(--radius-xl);
  background: rgba(var(--color-dark-rgb), .78);
  box-shadow: 0 32px 90px rgba(var(--color-dark-rgb), .48);
}

.reply-bridge__header,
.reply-output__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .7rem;
  font-weight: var(--weight-bold);
  letter-spacing: .11em;
}

.reply-bridge__header i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--reply-lime);
  box-shadow: 0 0 0 8px rgba(var(--color-accent-lime-rgb), .08), 0 0 24px rgba(var(--color-accent-lime-rgb), .55);
}

.reply-bridge__message {
  max-width: 88%;
  margin-top: 1.6rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(var(--color-white-rgb), .13);
  border-radius: 18px;
}

.reply-bridge__message small {
  display: block;
  margin-bottom: .55rem;
  color: rgba(var(--color-white-rgb), .48);
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: var(--weight-semibold);
  letter-spacing: .08em;
}

.reply-bridge__message p {
  margin: 0;
  font-size: .96rem;
  font-weight: var(--weight-semibold);
  line-height: 1.55;
}

.reply-bridge__message--client {
  color: var(--reply-light);
  background: rgba(var(--color-white-rgb), .06);
}

.reply-bridge__message--business {
  margin-left: auto;
  color: var(--reply-night);
  border-color: transparent;
  background: linear-gradient(120deg, var(--reply-cyan), var(--reply-lime));
}

.reply-bridge__message--business small {
  color: rgba(var(--color-dark-rgb), .58);
}

.reply-bridge__signal {
  display: flex;
  gap: .8rem;
  align-items: center;
  margin: 1.25rem 0 -.35rem;
}

.reply-bridge__signal span {
  width: min(160px, 45%);
  height: 2px;
  background: linear-gradient(90deg, var(--reply-cyan), var(--reply-lime));
}

.reply-bridge__signal strong {
  color: var(--reply-lime);
  font-family: var(--font-mono);
  font-size: .66rem;
  letter-spacing: .12em;
}

.reply-bridge__note {
  margin: 1.4rem 0 0;
  color: rgba(var(--color-white-rgb), .48);
  font-size: .76rem;
  line-height: 1.5;
}

.reply-workbench,
.reply-situations,
.reply-faq {
  padding: clamp(5rem, 9vw, 9rem) 0;
  background: var(--reply-paper);
}

.reply-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, .55fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.reply-section-head h2,
.reply-principles h2,
.reply-next-step h2 {
  margin: 0;
  font-size: clamp(2.45rem, 5vw, 5.4rem);
  font-style: normal;
  font-weight: var(--weight-black);
  letter-spacing: -.065em;
  line-height: .92;
  overflow-wrap: anywhere;
}

.reply-section-head > p {
  margin: 0;
  color: var(--reply-muted);
  font-size: var(--text-lg);
  line-height: 1.65;
}

.reply-workbench__layout {
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(390px, .74fr);
  gap: clamp(1.2rem, 3vw, 2.4rem);
  align-items: start;
}

.reply-mode {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(260px, 1fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
  margin: 0 0 clamp(1.5rem, 3vw, 2.4rem);
  padding: .65rem;
  border: 1px solid rgba(var(--color-dark-rgb), .16);
  border-radius: var(--radius-full);
  background: rgba(var(--color-white-rgb), .62);
  box-shadow: 0 18px 50px rgba(var(--color-dark-rgb), .06);
}

.reply-mode__switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem;
  min-width: min(100%, 390px);
  padding: .35rem;
  border-radius: var(--radius-full);
  background: var(--reply-night);
}

.reply-mode__switch button {
  min-width: 0;
  min-height: 48px;
  padding: 0 1rem;
  overflow: hidden;
  color: rgba(var(--color-white-rgb), .67);
  border: 0;
  border-radius: var(--radius-full);
  background: transparent;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .76rem;
  font-weight: var(--weight-black);
  letter-spacing: .02em;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition:
    color var(--duration-fast) ease,
    background-color var(--duration-fast) ease,
    transform var(--duration-fast) ease;
}

.reply-mode__switch button[aria-selected="true"] {
  color: var(--reply-night);
  background: linear-gradient(105deg, var(--reply-cyan), var(--reply-lime));
}

.reply-mode__switch button:hover,
.reply-mode__switch button:focus-visible {
  color: var(--reply-light);
  transform: translateY(-1px);
}

.reply-mode__switch button[aria-selected="true"]:hover,
.reply-mode__switch button[aria-selected="true"]:focus-visible {
  color: var(--reply-night);
}

.reply-mode__switch button:focus-visible,
.reply-tone-form textarea:focus-visible,
.reply-tone-form__under button:focus-visible {
  outline: 3px solid var(--reply-lime);
  outline-offset: 3px;
}

.reply-mode > p {
  margin: 0;
  padding-right: 1.2rem;
  color: var(--reply-muted);
  font-size: .88rem;
  line-height: 1.5;
}

[data-reply-panel][hidden],
.reply-tone-output__empty[hidden],
.reply-tone-output__content[hidden] {
  display: none;
}

/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V5 */
.reply-tone-workbench {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(420px, .84fr);
  gap: clamp(1.2rem, 3vw, 2.4rem);
  align-items: start;
}

.reply-tone-form {
  min-width: 0;
  padding: clamp(1.35rem, 3vw, 2.4rem);
  border: 1px solid rgba(var(--color-dark-rgb), .18);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 100% 0, rgba(var(--color-accent-blue-rgb), .13), transparent 35%),
    rgba(var(--color-white-rgb), .66);
  box-shadow: 0 24px 70px rgba(var(--color-dark-rgb), .07);
}

.reply-tone-form h3 {
  max-width: 720px;
  margin: 0;
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-style: normal;
  font-weight: var(--weight-black);
  letter-spacing: -.055em;
  line-height: .98;
  overflow-wrap: anywhere;
}

.reply-tone-form > div:first-child > p:not(.reply-kicker) {
  margin: 1rem 0 2rem;
  color: var(--reply-muted);
  line-height: 1.65;
}

.reply-tone-form > label {
  display: block;
  margin-bottom: .65rem;
  font-size: .82rem;
  font-weight: var(--weight-black);
}

.reply-tone-form textarea {
  width: 100%;
  min-height: 240px;
  padding: 1.15rem;
  resize: vertical;
  color: var(--reply-ink);
  border: 1px solid rgba(var(--color-dark-rgb), .22);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
}

.reply-tone-form textarea::placeholder {
  color: rgba(var(--color-dark-rgb), .42);
}

.reply-tone-form__under {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  margin: .65rem 0 1.25rem;
  color: var(--reply-muted);
  font-family: var(--font-mono);
  font-size: .68rem;
}

.reply-tone-form__under button {
  min-height: 38px;
  padding: 0 .9rem;
  color: var(--reply-ink);
  border: 1px solid rgba(var(--color-dark-rgb), .2);
  border-radius: var(--radius-full);
  background: transparent;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: var(--weight-bold);
  line-height: 1;
  white-space: nowrap;
}

.reply-tone-output {
  position: sticky;
  top: 94px;
  min-width: 0;
  min-height: 620px;
  padding: clamp(1.35rem, 3vw, 2.25rem);
  overflow: hidden;
  color: var(--reply-light);
  border: 1px solid rgba(var(--color-white-rgb), .14);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 86% 9%, rgba(var(--color-accent-lime-rgb), .19), transparent 27%),
    linear-gradient(145deg, rgba(var(--color-accent-blue-rgb), .09), transparent 44%),
    var(--reply-night);
  box-shadow: 0 30px 90px rgba(var(--color-dark-rgb), .24);
}

.reply-tone-output__empty {
  display: grid;
  min-height: 500px;
  align-content: center;
}

.reply-tone-output__signal {
  display: grid;
  grid-template-columns: auto minmax(64px, 150px) auto;
  gap: .8rem;
  align-items: center;
  width: min(100%, 300px);
}

.reply-tone-output__signal span,
.reply-tone-output__signal strong {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  border-radius: 18px;
  font-family: var(--font-mono);
  font-size: .78rem;
  font-weight: var(--weight-black);
}

.reply-tone-output__signal span {
  color: rgba(var(--color-white-rgb), .58);
  border: 1px solid rgba(var(--color-white-rgb), .18);
}

.reply-tone-output__signal strong {
  color: var(--reply-night);
  background: linear-gradient(135deg, var(--reply-cyan), var(--reply-lime));
}

.reply-tone-output__signal i {
  position: relative;
  height: 2px;
  overflow: visible;
  background: linear-gradient(90deg, var(--reply-cyan), var(--reply-lime));
}

.reply-tone-output__signal i::after {
  position: absolute;
  top: 50%;
  right: 0;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--reply-lime);
  content: "";
  box-shadow: 0 0 20px rgba(var(--color-accent-lime-rgb), .7);
  transform: translateY(-50%);
}

.reply-tone-output__empty h3 {
  max-width: 510px;
  margin: 1.8rem 0 0;
  color: var(--reply-light);
  font-size: clamp(1.8rem, 3.6vw, 3.2rem);
  font-style: normal;
  letter-spacing: -.05em;
  line-height: 1;
  overflow-wrap: anywhere;
}

.reply-tone-output__empty p {
  max-width: 520px;
  margin: 1rem 0 0;
  color: rgba(var(--color-white-rgb), .62);
  line-height: 1.65;
}

.reply-tone-output__content {
  margin-top: 1.8rem;
}

.reply-tone-score {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.reply-tone-score > span {
  display: grid;
  width: clamp(92px, 12vw, 126px);
  aspect-ratio: 1;
  place-items: center;
  color: var(--reply-night);
  border-radius: 30px;
  background: linear-gradient(135deg, var(--reply-cyan), var(--reply-lime));
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: var(--weight-black);
  letter-spacing: -.06em;
  box-shadow: 0 22px 56px rgba(var(--color-accent-blue-rgb), .18);
}

.reply-tone-score small,
.reply-tone-score strong {
  display: block;
}

.reply-tone-score small {
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: var(--weight-bold);
  letter-spacing: .12em;
}

.reply-tone-score strong {
  margin-top: .45rem;
  color: var(--reply-light);
  font-size: clamp(1.15rem, 2.2vw, 1.7rem);
  line-height: 1.15;
}

.reply-tone-meter {
  margin-top: 1.5rem;
}

.reply-tone-meter > div {
  position: relative;
  height: 7px;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--color-mocha), var(--reply-cyan), var(--reply-lime));
}

.reply-tone-meter i {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  border: 4px solid var(--reply-light);
  border-radius: 50%;
  background: var(--reply-night);
  box-shadow: 0 6px 18px rgba(var(--color-dark-rgb), .5);
  transform: translate(-50%, -50%);
  transition: left .5s var(--ease-out);
}

.reply-tone-meter > span {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: .55rem;
  color: rgba(var(--color-white-rgb), .44);
  font-family: var(--font-mono);
  font-size: .56rem;
  letter-spacing: .05em;
}

.reply-tone-summary {
  margin: 1.4rem 0 0;
  color: rgba(var(--color-white-rgb), .76);
  line-height: 1.6;
}

.reply-tone-findings {
  margin-top: 1.5rem;
}

.reply-tone-findings > span {
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: var(--weight-bold);
  letter-spacing: .12em;
}

.reply-tone-findings ul {
  display: grid;
  gap: .75rem;
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.reply-tone-finding {
  position: relative;
  min-width: 0;
  padding: 1rem 1rem 1rem 1.2rem;
  border: 1px solid rgba(var(--color-white-rgb), .13);
  border-radius: var(--radius-md);
  background: rgba(var(--color-white-rgb), .055);
}

.reply-tone-finding::before {
  position: absolute;
  top: 1rem;
  bottom: 1rem;
  left: 0;
  width: 3px;
  border-radius: var(--radius-full);
  background: var(--color-mocha);
  content: "";
}

.reply-tone-finding--positive::before {
  background: var(--reply-lime);
}

.reply-tone-finding--medium::before {
  background: var(--reply-cyan);
}

.reply-tone-finding small,
.reply-tone-finding strong,
.reply-tone-finding span {
  display: block;
}

.reply-tone-finding small {
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .58rem;
  font-weight: var(--weight-bold);
  letter-spacing: .1em;
}

.reply-tone-finding strong {
  margin-top: .3rem;
  color: var(--reply-light);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.reply-tone-finding span {
  margin-top: .55rem;
  color: var(--reply-lime);
  font-size: .9rem;
  font-weight: var(--weight-semibold);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.reply-tone-finding p {
  margin: .45rem 0 0;
  color: rgba(var(--color-white-rgb), .58);
  font-size: .76rem;
  line-height: 1.5;
}

.reply-tone-actions {
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
}

.reply-tone-actions .reply-output__reset {
  grid-column: auto;
}

.reply-output__button--card {
  color: var(--reply-light);
  border-color: rgba(var(--color-white-rgb), .22);
  background: rgba(var(--color-white-rgb), .08);
}

.reply-output__button--card:hover,
.reply-output__button--card:focus-visible {
  color: var(--reply-night);
  border-color: var(--reply-cyan);
  background: var(--reply-cyan);
}

.reply-tone-card-note {
  margin: .7rem 0 0;
  color: rgba(var(--color-white-rgb), .5);
  font-size: .7rem;
  line-height: 1.5;
}

.reply-form {
  padding: clamp(1.25rem, 3vw, 2.25rem);
  border: 1px solid rgba(var(--color-dark-rgb), .18);
  border-radius: var(--radius-xl);
  background: rgba(var(--color-white-rgb), .6);
  box-shadow: 0 24px 70px rgba(var(--color-dark-rgb), .07);
}

.reply-form__section {
  min-width: 0;
  margin: 0;
  padding: 0 0 1.8rem;
  border: 0;
}

.reply-form__section + .reply-form__section,
.reply-form__section + .reply-form__legend,
.reply-form__legend + .reply-field-grid {
  border-top: 1px solid rgba(var(--color-dark-rgb), .12);
}

.reply-form legend,
.reply-form__legend {
  display: flex;
  gap: .8rem;
  align-items: center;
  width: 100%;
  margin: 0 0 1rem;
  padding: 1.55rem 0 0;
  color: var(--reply-ink);
  font-size: 1rem;
  font-weight: var(--weight-black);
  line-height: 1.3;
}

.reply-form__section:first-child legend {
  padding-top: 0;
}

.reply-form legend span,
.reply-form__legend span {
  color: var(--color-mocha);
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .08em;
}

.reply-choice-grid {
  display: grid;
  gap: .65rem;
}

.reply-choice-grid--scenarios {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reply-choice-grid--channel {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.reply-choice-grid--tone {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reply-choice {
  min-width: 0;
}

.reply-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.reply-choice span {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 0 .8rem;
  overflow: hidden;
  color: var(--reply-ink);
  border: 1px solid rgba(var(--color-dark-rgb), .2);
  border-radius: var(--radius-full);
  cursor: pointer;
  font-size: .78rem;
  font-weight: var(--weight-bold);
  line-height: 1;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition:
    color var(--duration-fast) ease,
    border-color var(--duration-fast) ease,
    background-color var(--duration-fast) ease;
}

.reply-choice input:checked + span {
  color: var(--reply-night);
  border-color: var(--reply-cyan);
  background: linear-gradient(110deg, rgba(var(--color-accent-blue-rgb), .72), rgba(var(--color-accent-lime-rgb), .64));
}

.reply-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  padding-top: 1.5rem;
}

.reply-field {
  min-width: 0;
  margin-top: 1rem;
}

.reply-field-grid .reply-field {
  margin-top: 0;
}

.reply-field label {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .55rem;
  color: var(--reply-ink);
  font-size: .78rem;
  font-weight: var(--weight-bold);
  line-height: 1.35;
}

.reply-field label small {
  color: var(--reply-muted);
  font-weight: var(--weight-regular);
}

.reply-field input,
.reply-field select {
  width: 100%;
  min-height: 54px;
  padding: 0 1rem;
  color: var(--reply-ink);
  border: 1px solid rgba(var(--color-dark-rgb), .22);
  border-radius: var(--radius-md);
  background: var(--color-white);
  font: inherit;
}

.reply-field input::placeholder {
  color: rgba(var(--color-dark-rgb), .38);
}

.reply-money-field {
  position: relative;
}

.reply-money-field span {
  position: absolute;
  top: 50%;
  left: 1rem;
  color: var(--reply-muted);
  font-weight: var(--weight-bold);
  transform: translateY(-50%);
}

.reply-money-field input {
  padding-left: 2.2rem;
}

.reply-context-group[hidden],
#replyCustomServiceField[hidden] {
  display: none;
}

.reply-submit {
  width: 100%;
  margin-top: .25rem;
}

.reply-form__privacy {
  margin: 1rem 0 0;
  color: var(--reply-muted);
  font-size: .74rem;
  line-height: 1.55;
}

.reply-output {
  position: sticky;
  top: 94px;
  min-height: 620px;
  padding: clamp(1.25rem, 3vw, 2.1rem);
  color: var(--reply-light);
  border: 1px solid rgba(var(--color-white-rgb), .14);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 92% 8%, rgba(var(--color-accent-lime-rgb), .16), transparent 28%),
    radial-gradient(circle at 8% 96%, rgba(var(--color-accent-blue-rgb), .16), transparent 30%),
    var(--reply-night);
  box-shadow: 0 30px 90px rgba(var(--color-dark-rgb), .24);
}

.reply-output__top i {
  color: var(--reply-lime);
  font-family: var(--font-mono);
  font-size: .68rem;
  font-style: normal;
  letter-spacing: .08em;
}

.reply-output__empty {
  display: grid;
  min-height: 500px;
  align-content: center;
  justify-items: start;
}

.reply-output__empty-mark {
  display: grid;
  width: 82px;
  height: 82px;
  place-items: center;
  color: var(--reply-night);
  border-radius: 22px;
  background: linear-gradient(135deg, var(--reply-cyan), var(--reply-lime));
  font-family: var(--font-mono);
  font-size: 1.25rem;
  font-weight: var(--weight-black);
  box-shadow: 0 24px 64px rgba(var(--color-accent-blue-rgb), .2);
}

.reply-output__empty h3 {
  max-width: 420px;
  margin: 1.7rem 0 0;
  color: var(--reply-light);
  font-size: clamp(1.8rem, 3.6vw, 3rem);
  font-style: normal;
  letter-spacing: -.045em;
  line-height: 1;
}

.reply-output__empty p {
  max-width: 440px;
  margin: 1rem 0 0;
  color: rgba(var(--color-white-rgb), .58);
  line-height: 1.65;
}

.reply-output__content {
  margin-top: 2rem;
}

.reply-output__subject {
  padding: 1rem;
  border: 1px solid rgba(var(--color-white-rgb), .13);
  border-radius: var(--radius-md);
  background: rgba(var(--color-white-rgb), .055);
}

.reply-output__subject span {
  display: block;
  margin-bottom: .35rem;
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .66rem;
  font-weight: var(--weight-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.reply-output__subject strong {
  color: var(--reply-light);
  font-size: .94rem;
}

.reply-output pre {
  margin: 1rem 0 0;
  padding: clamp(1.1rem, 3vw, 1.5rem);
  overflow: auto;
  color: var(--reply-ink);
  border-radius: var(--radius-lg);
  background: var(--reply-paper);
  font-family: var(--font-body);
  font-size: .98rem;
  font-weight: var(--weight-medium);
  line-height: 1.66;
  white-space: pre-wrap;
  word-break: normal;
  overflow-wrap: break-word;
}

.reply-output__meaning {
  margin: 1rem 0 0;
  color: rgba(var(--color-white-rgb), .64);
  font-size: .8rem;
  line-height: 1.55;
}

.reply-output__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1.25rem;
}

.reply-output__button {
  min-width: 0;
  padding: 0 .9rem;
  color: var(--reply-light);
  border: 1px solid rgba(var(--color-white-rgb), .22);
  background: transparent;
  font-size: .74rem;
}

.reply-output__button--primary {
  color: var(--reply-night);
  border-color: transparent;
  background: linear-gradient(105deg, var(--reply-cyan), var(--reply-lime));
  box-shadow: 0 14px 34px rgba(var(--color-accent-blue-rgb), .16);
}

.reply-output__button--share {
  width: 100%;
  border-color: rgba(var(--color-accent-blue-rgb), .48);
  background: rgba(var(--color-accent-blue-rgb), .1);
}

.reply-output__reset {
  grid-column: 1 / -1;
  min-height: 44px;
  color: rgba(var(--color-white-rgb), .66);
  background: transparent;
  font-size: .7rem;
}

.reply-output__lead {
  position: relative;
  margin-top: 1rem;
  padding: 1.15rem;
  overflow: hidden;
  border: 1px solid rgba(var(--color-accent-lime-rgb), .34);
  border-radius: var(--radius-md);
  background:
    radial-gradient(circle at 100% 0, rgba(var(--color-accent-lime-rgb), .18), transparent 45%),
    linear-gradient(145deg, rgba(var(--color-white-rgb), .09), rgba(var(--color-white-rgb), .035));
}

.reply-output__lead[hidden] {
  display: none;
}

.reply-output__lead > span {
  display: block;
  color: var(--reply-lime);
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: var(--weight-bold);
  letter-spacing: .12em;
}

.reply-output__lead strong {
  display: block;
  margin-top: .55rem;
  color: var(--reply-light);
  font-size: 1rem;
  line-height: 1.25;
}

.reply-output__lead p {
  margin: .55rem 0 .85rem;
  color: rgba(var(--color-white-rgb), .74);
  font-size: .78rem;
  line-height: 1.5;
}

.reply-output__lead-action {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .75rem 1rem;
  color: var(--reply-night);
  border-radius: 999px;
  background: linear-gradient(105deg, var(--reply-cyan), var(--reply-lime));
  font-size: .72rem;
  font-weight: var(--weight-black);
  letter-spacing: .04em;
  text-align: center;
  text-transform: uppercase;
}

.reply-output__lead-action:hover,
.reply-output__lead-action:focus-visible {
  color: var(--reply-night);
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(var(--color-accent-lime-rgb), .16);
}

.reply-output__lead small {
  display: block;
  margin-top: .65rem;
  color: rgba(var(--color-white-rgb), .58);
  font-size: .66rem;
  line-height: 1.45;
  text-align: center;
}

.reply-output__referral {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid rgba(var(--color-accent-blue-rgb), .28);
  border-radius: var(--radius-md);
  background:
    linear-gradient(135deg, rgba(var(--color-accent-blue-rgb), .1), rgba(var(--color-accent-lime-rgb), .07));
}

.reply-output__referral span {
  display: block;
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .62rem;
  font-weight: var(--weight-bold);
  letter-spacing: .12em;
}

.reply-output__referral p {
  margin: .4rem 0 .8rem;
  color: rgba(var(--color-white-rgb), .78);
  font-size: .78rem;
  line-height: 1.45;
}

.reply-output__feedback {
  min-height: 1.2rem;
  margin: .7rem 0 0;
  color: var(--reply-lime);
  font-size: .76rem;
  text-align: center;
}

.reply-situations {
  padding-top: 0;
}

.reply-situation-list {
  border-top: 1px solid rgba(var(--color-dark-rgb), .2);
}

.reply-situation-list article {
  display: grid;
  grid-template-columns: minmax(190px, .55fr) minmax(260px, .8fr) minmax(0, 1fr);
  gap: clamp(1.2rem, 4vw, 4rem);
  align-items: center;
  padding: 1.8rem 0;
  border-bottom: 1px solid rgba(var(--color-dark-rgb), .2);
}

.reply-situation-list span {
  color: var(--color-mocha);
  font-family: var(--font-mono);
  font-size: .72rem;
  font-weight: var(--weight-bold);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.reply-situation-list strong {
  font-size: clamp(1.15rem, 2vw, 1.55rem);
}

.reply-situation-list p {
  margin: 0;
  color: var(--reply-muted);
  line-height: 1.6;
}

.reply-principles {
  padding: clamp(5rem, 9vw, 9rem) 0;
  color: var(--reply-light);
  background:
    radial-gradient(circle at 4% 90%, rgba(var(--color-accent-blue-rgb), .16), transparent 30%),
    var(--reply-night);
}

.reply-principles__layout {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(360px, .78fr);
  gap: clamp(3rem, 8vw, 9rem);
}

.reply-principles h2 {
  color: var(--reply-light);
}

.reply-principles__list {
  border-top: 1px solid rgba(var(--color-white-rgb), .17);
}

.reply-principles__list article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 1.2rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(var(--color-white-rgb), .17);
}

.reply-principles__list article > span {
  color: var(--reply-cyan);
  font-family: var(--font-mono);
  font-size: .75rem;
  font-weight: var(--weight-bold);
}

.reply-principles__list strong {
  display: block;
  color: var(--reply-lime);
  font-size: var(--text-lg);
}

.reply-principles__list p {
  margin: .55rem 0 0;
  color: rgba(var(--color-white-rgb), .66);
  line-height: 1.65;
}

.reply-section-head--faq {
  grid-template-columns: minmax(0, 1fr);
}

.reply-faq__list {
  border-top: 1px solid rgba(var(--color-dark-rgb), .2);
}

.reply-faq details {
  border-bottom: 1px solid rgba(var(--color-dark-rgb), .2);
}

.reply-faq summary {
  position: relative;
  padding: 1.8rem 4rem 1.8rem 0;
  cursor: pointer;
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  font-weight: var(--weight-bold);
  line-height: 1.3;
  list-style: none;
}

.reply-faq summary::-webkit-details-marker {
  display: none;
}

.reply-faq summary::after {
  position: absolute;
  top: 50%;
  right: .3rem;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid rgba(var(--color-dark-rgb), .3);
  border-radius: 50%;
  content: "+";
  font-family: var(--font-mono);
  transform: translateY(-50%);
}

.reply-faq details[open] summary::after {
  content: "−";
}

.reply-faq details p {
  max-width: 900px;
  margin: -1rem 0 1.8rem;
  color: var(--reply-muted);
  font-size: var(--text-lg);
  line-height: 1.7;
}

.reply-next-step {
  padding: 0 0 clamp(5rem, 9vw, 9rem);
  background: var(--reply-paper);
}

.reply-next-step__shell {
  position: relative;
  padding: clamp(2rem, 7vw, 6rem);
  overflow: hidden;
  color: var(--reply-light);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 92% 18%, rgba(var(--color-accent-lime-rgb), .23), transparent 32%),
    radial-gradient(circle at 4% 100%, rgba(var(--color-accent-blue-rgb), .2), transparent 34%),
    var(--reply-night);
}

.reply-next-step h2 {
  position: relative;
  z-index: 1;
  max-width: 940px;
  color: var(--reply-light);
}

.reply-next-step p:not(.reply-kicker) {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 1.5rem 0 2rem;
  color: rgba(var(--color-white-rgb), .68);
  font-size: var(--text-lg);
  line-height: 1.65;
}

.reply-next-step .reply-action {
  position: relative;
  z-index: 1;
}

@media (max-width: 980px) {
  .reply-hero__grid,
  .reply-workbench__layout,
  .reply-tone-workbench,
  .reply-principles__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .reply-bridge {
    max-width: 680px;
  }

  .reply-output {
    position: relative;
    top: auto;
    min-height: 520px;
  }

  .reply-tone-output {
    position: relative;
    top: auto;
    min-height: 520px;
  }
}

@media (max-width: 820px) {
  .reply-hero {
    min-height: auto;
    padding-top: 7rem;
  }

  .reply-section-head {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
  }

  .reply-mode {
    grid-template-columns: minmax(0, 1fr);
    border-radius: var(--radius-lg);
  }

  .reply-mode__switch {
    width: 100%;
  }

  .reply-mode > p {
    padding: 0 .55rem .35rem;
  }

  .reply-situation-list article {
    grid-template-columns: minmax(180px, .55fr) minmax(0, 1fr);
  }

  .reply-situation-list p {
    grid-column: 2;
  }
}

@media (max-width: 620px) {
  .reply-hero {
    padding-top: 6rem;
  }

  .reply-hero h1 {
    font-size: clamp(3rem, 15vw, 4.55rem);
    line-height: .9;
  }

  .reply-hero__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .reply-action {
    width: 100%;
  }

  .reply-assurances {
    display: grid;
  }

  .reply-bridge {
    padding: 1.15rem;
    border-radius: var(--radius-lg);
  }

  .reply-bridge__message {
    max-width: 94%;
  }

  .reply-form,
  .reply-output,
  .reply-tone-form,
  .reply-tone-output {
    padding: 1.15rem;
    border-radius: var(--radius-lg);
  }

  .reply-mode {
    padding: .45rem;
  }

  .reply-mode__switch button {
    min-height: 46px;
    padding: 0 .55rem;
    font-size: .68rem;
  }

  .reply-tone-form textarea {
    min-height: 210px;
  }

  .reply-tone-score > span {
    width: 92px;
    border-radius: 24px;
  }

  .reply-tone-output {
    min-height: 480px;
  }

  .reply-choice-grid--scenarios {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .reply-choice-grid--tone {
    grid-template-columns: minmax(0, 1fr);
  }

  .reply-field-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .reply-output {
    min-height: 480px;
  }

  .reply-output__actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .reply-output__reset {
    grid-column: 1;
  }

  .reply-situation-list article {
    grid-template-columns: minmax(0, 1fr);
    gap: .6rem;
    padding: 1.5rem 0;
  }

  .reply-situation-list p {
    grid-column: 1;
  }

  .reply-section-head h2,
  .reply-principles h2,
  .reply-next-step h2 {
    font-size: clamp(2.3rem, 12vw, 3.55rem);
  }

  .reply-next-step__shell {
    border-radius: var(--radius-lg);
  }
}

@media (max-width: 360px) {
  .reply-mode__switch button {
    font-size: .64rem;
    letter-spacing: 0;
  }

  .reply-choice span {
    padding: 0 .55rem;
    font-size: .71rem;
  }

  .reply-output pre {
    font-size: .92rem;
  }

  .reply-tone-form__under {
    align-items: flex-start;
    flex-direction: column;
  }

  .reply-tone-score {
    gap: .75rem;
  }

  .reply-tone-score > span {
    width: 78px;
    border-radius: 20px;
    font-size: 2.2rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .reply-bridge {
    animation: reply-bridge-arrive .8s var(--ease-out) .15s both;
  }

  .reply-bridge__header i {
    animation: reply-signal-pulse 2.8s ease-in-out infinite;
  }

  .reply-output.has-result {
    animation: reply-result-ready .45s var(--ease-out) both;
  }

  .reply-tone-output.has-result {
    animation: reply-result-ready .45s var(--ease-out) both;
  }

  .reply-tone-output__signal i::after {
    animation: reply-tone-scan 2.2s ease-in-out infinite;
  }
}

@keyframes reply-bridge-arrive {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes reply-signal-pulse {
  0%,
  100% {
    box-shadow: 0 0 0 8px rgba(var(--color-accent-lime-rgb), .08), 0 0 24px rgba(var(--color-accent-lime-rgb), .45);
  }
  50% {
    box-shadow: 0 0 0 14px rgba(var(--color-accent-lime-rgb), .03), 0 0 38px rgba(var(--color-accent-lime-rgb), .72);
  }
}

@keyframes reply-result-ready {
  from {
    transform: translateY(8px);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes reply-tone-scan {
  0%,
  100% {
    right: calc(100% - 9px);
  }
  50% {
    right: 0;
  }
}
