:root {
  --min-max: clamp(1.125rem, 1.0625rem + 0.3125vw, 1.3125rem);
  --multiplier: clamp(1rem, 0.9167rem + 0.4167vw, 1.2500rem);
  --divider: clamp(1.05rem, 0.9625rem + 0.4375vw, 1.3125rem);
  --relative: clamp(1rem, 0.8667rem + 0.6667vw, 1.4000rem);;

  --spacing-lg: clamp(1.5rem, 1.2500rem + 1.2500vw, 2.2500rem);
  --spacing-md: clamp(1.3125rem, 1.0938rem + 1.0938vw, 1.9688rem);
  --spacing-sm: clamp(1.125rem, 0.9375rem + 0.9375vw, 1.6875rem);
  --spacing-xs: clamp(0.75rem, 0.6250rem + 0.6250vw, 1.1250rem);

  --font-md: clamp(1.6rem, 1.4667rem + 0.6667vw, 2.0000rem);
  --font-sm: clamp(1.2rem, 1.1000rem + 0.5000vw, 1.5000rem);
  --font-xs: clamp(1.05rem, 0.9625rem + 0.4375vw, 1.3125rem);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "DM Sans";
  font-size: var(--font-xs);
  font-weight: 300;
  background-color: hsl(18, 100%, 93%);
}

h1, h2, h3, h4, h5, h6, p, ul, ol {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 800;
  letter-spacing: -0.05em;
}

p {
  line-height: 1.5;
}

input[type="number"] {
  flex: 1;

  display: block;
  min-width: 0;
  width: 100%;
  height: 4rem;
  padding: 0 var(--spacing-xs);
  border: none;
  border-radius: 0;

  font-size: var(--font-md);
  font-family: 'JetBrains Mono', monospace;
  outline: 2px solid hsl(18,100%,90%);
  outline-offset: -2px;

  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
	box-shadow: none;
}

input[type="number"]:focus {
  outline: 2px solid hsl(18,100%,82%);
}

input[type="number"]:disabled {
  background: none;
  cursor: not-allowed;
  color: black;
  outline: 2px solid hsl(18,100%,90%);
  opacity: 1;
}

label {
  font-weight: 800;
  letter-spacing: -0.05em;
}

.intro {
  display: grid;
  gap: var(--spacing-lg);

  padding: var(--spacing-lg) var(--spacing-md);
}

h1 {
  font-size: clamp(3rem, -1.2083rem + 21.0417vw, 15.6250rem); /* 48px @ 320px > 250px @ 1280px */
  letter-spacing: -0.075em;
  color: white;
}

h2 {
  font-size: clamp(1.875rem, 0.9375rem + 4.6875vw, 4.6875rem);
  letter-spacing: -0.075em;
  color: hsl(18,100%,65%);
}

h3 {
  font-size: var(--font-xs);
}

.initial-values {
  display: grid;
  gap: var(--spacing-xs);
}

.calculator {
  display: grid;
  gap: var(--spacing-md);
  padding: var(--spacing-lg) var(--spacing-md);
}


.calculator:nth-child(1n) {
  background-color: rgba(255,255,255,0.8);
}

.calculator:nth-child(2n) {
  background-color: rgba(255,255,255,0.6);
}

.calculator:nth-child(3n) {
  background-color: rgba(255,255,255,0.4);
}

.calculator:nth-child(4n) {
  background-color: rgba(255,255,255,0.2);
}

.fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: var(--spacing-sm);
}

.field {
  display: grid;
  gap: 0.25rem;
}

.suffix-wrapper {
  display: flex;
}

.suffix {
  display: grid;
  place-items: center;

  height: 4rem;
  padding: 0 var(--spacing-xs);

  background-color: hsl(18,100%,90%);

  font-family: 'JetBrains Mono', monospace;
  font-size: var(--font-sm);
}

.result {
  white-space: nowrap;
  overflow-x: auto;
  width: 100%;

  padding: var(--spacing-xs);
  background-color: hsl(18,100%,92%);
  border: 1px solid hsl(18,100%,82%);

  font-family: 'JetBrains Mono', monospace;
  font-size: 1rem;
  letter-spacing: -0.025em;
}

.calculator-intro {
  display: grid;
  gap: var(--spacing-xs);
}

.copy {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.875rem;

  width: 10rem;
  padding: 0.875rem 0.5rem;

  border-radius: 0.25rem;
  background-color: hsl(18,100%,65%);
  border: 1px solid hsl(18,100%,45%);

  font-family: "DM Sans";
  font-size: var(--font-xs);
  font-weight: 800;
  letter-spacing: -0.05em;
  color: white;
  cursor: pointer;
}

.copy.success {
  background-color: hsl(122, 100%, 35%);
  border-color: hsl(122, 100%, 25%);
}

.copy.fail {
  background-color: hsl(0, 100%, 50%);
  border-color: hsl(0, 100%, 40%);
}

.copy:hover {
  background-color: hsl(18,100%,55%);
  border: 1px solid hsl(18,100%,35%);
}

.copy svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

.copy .success-icon,
.copy .fail-icon {
  display: none;
}

.copy.success .copy-icon,
.copy.fail .copy-icon {
  display: none;
}

.copy.success .success-icon {
  display: block;
}

.copy.fail .fail-icon {
  display: block;
}

.pg-footer {
  padding: var(--spacing-lg) var(--spacing-md);
}

.pg-footer a {
  color: inherit;
}

