.ecm-root {
  --ecm-cream: #f6f3ef;
  --ecm-line: rgba(23, 23, 27, 0.11);
  overflow: hidden;
  background:
    radial-gradient(circle at 13% 8%, rgba(255, 75, 43, 0.11), transparent 29%),
    radial-gradient(
      circle at 88% 15%,
      rgba(58, 71, 213, 0.12),
      transparent 32%
    ),
    var(--ecm-cream);
  padding: 48px 0 80px;
  margin-top: 28px;
}
.ecm-shell {
  max-width: 1220px;
}
.ecm-root button,
.ecm-root a,
.ecm-root select {
  cursor: pointer;
}
.ecm-kicker,
.ecm-step,
.ecm-control-head > span,
.ecm-method-picker > span,
.ecm-format span,
.ecm-tools-grid small {
  margin: 0;
  color: #6b6972;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ecm-kicker:before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 10px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: var(--ecm-mix);
  box-shadow: 0 0 0 1px var(--ecm-line);
  vertical-align: 1px;
}
.ecm-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  align-items: center;
  gap: 50px;
  padding: 38px 4px 52px;
}
.ecm-title {
  margin: 14px 0 30px;
  font-size: var(--egt-hero-title-size);
  font-weight: 850;
  letter-spacing: -0.075em;
  line-height: 0.85;
}
.ecm-title span {
  color: var(--ecm-mix);
}
.ecm-title span:after {
  content: "";
  display: block;
  width: min(340px, 74%);
  height: 6px;
  margin: 11px 0 0 0.05em;
  border-radius: 9px;
  background: linear-gradient(
    90deg,
    var(--ecm-a),
    var(--ecm-mix),
    var(--ecm-b)
  );
}
.ecm-lead {
  max-width: 710px;
  margin: 0;
  color: #6b6972;
  font-size: 20px;
  line-height: 1.55;
}
.ecm-orbit {
  position: relative;
  width: 250px;
  height: 250px;
  border: 1px solid var(--ecm-line);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.ecm-orbit i {
  display: grid;
  place-items: center;
  width: 61px;
  height: 61px;
  border: 9px solid #fff;
  border-radius: 50%;
  background: var(--ecm-a);
  box-shadow: 0 16px 30px rgba(23, 23, 27, 0.12);
  color: #fff;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
}
.ecm-orbit i:nth-child(2) {
  width: 76px;
  height: 76px;
  background: var(--ecm-mix);
}
.ecm-orbit i:nth-child(3) {
  background: var(--ecm-b);
}
.ecm-orbit strong {
  position: absolute;
  bottom: -34px;
  font-size: 10px;
  letter-spacing: 0.14em;
}
.ecm-studio {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  overflow: hidden;
  border: 1px solid var(--ecm-line);
  border-radius: 36px;
  background: rgba(255, 255, 255, 0.91);
  box-shadow: 0 32px 80px rgba(30, 24, 22, 0.1);
}
.ecm-panel {
  min-width: 0;
  padding: 42px;
}
.ecm-panel + .ecm-panel {
  border-left: 1px solid var(--ecm-line);
}
.ecm-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 26px;
}
.ecm-panel-head h2,
.ecm-section h2 {
  margin: 8px 0 0;
  font-size: 31px;
  letter-spacing: -0.045em;
  line-height: 1;
}
.ecm-live {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--ecm-line);
  border-radius: 30px;
  padding: 10px 14px;
  color: #6b6972;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ecm-live:before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #3dcc91;
  box-shadow: 0 0 0 6px rgba(61, 204, 145, 0.14);
}
.ecm-source-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.ecm-color-card {
  min-width: 0;
  border: 1px solid var(--ecm-line);
  border-radius: 21px;
  padding: 14px;
  background: #fff;
}
.ecm-color-top {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
  color: #6b6972;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.ecm-color-field {
  position: relative;
  display: block;
  height: 118px;
  overflow: hidden;
  border-radius: 15px;
}
.ecm-color-field input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.ecm-color-field span {
  position: absolute;
  right: 10px;
  bottom: 10px;
  width: 25px;
  height: 25px;
  border: 5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(23, 23, 27, 0.2);
}
.ecm-hex-input {
  width: 100%;
  margin-top: 10px;
  border: 1px solid var(--ecm-line);
  border-radius: 13px;
  background: #f8f7f5;
  padding: 11px 12px;
  color: #17171b;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}
.ecm-source-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 12px 0 17px;
}
.ecm-source-actions button,
.ecm-third-toggle,
.ecm-recipe-head button,
.ecm-scale-actions button,
.ecm-scale-actions select {
  min-height: 43px;
  border: 1px solid var(--ecm-line);
  border-radius: 13px;
  background: #fff;
  padding: 10px 15px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ecm-source-actions button {
  border-color: rgba(23, 23, 27, 0.28);
  transition:
    transform 0.18s ease,
    background 0.18s ease,
    color 0.18s ease;
}
.ecm-source-actions button:hover {
  transform: translateY(-2px);
}
.ecm-source-actions button:last-child {
  border-color: #17171b;
  background: #17171b;
  color: #fff;
  box-shadow: 0 8px 20px rgba(23, 23, 27, 0.12);
}
.ecm-control-box {
  display: grid;
  gap: 18px;
  border: 1px solid var(--ecm-line);
  border-radius: 21px;
  background: #f8f7f5;
  padding: 19px;
}
.ecm-control-box > * {
  min-width: 0;
}
.ecm-control-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.ecm-control-head strong {
  font-size: 12px;
}
.ecm-balance input,
.ecm-third-range input {
  width: 100%;
  height: 5px;
  margin: 17px 0 7px;
  appearance: none;
  border-radius: 5px;
  background: linear-gradient(
    90deg,
    var(--ecm-a),
    var(--ecm-mix),
    var(--ecm-b)
  );
  accent-color: var(--ecm-mix);
}
.ecm-balance input::-webkit-slider-thumb,
.ecm-third-range input::-webkit-slider-thumb {
  width: 22px;
  height: 22px;
  appearance: none;
  border: 5px solid #fff;
  border-radius: 50%;
  background: var(--ecm-mix);
  box-shadow: 0 1px 8px rgba(23, 23, 27, 0.25);
}
.ecm-range-ends {
  display: flex;
  justify-content: space-between;
  color: #77747d;
  font-size: 9px;
  font-weight: 700;
}
.ecm-method-picker {
  padding-top: 17px;
  border-top: 1px solid var(--ecm-line);
}
.ecm-method-picker > div {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-top: 10px;
}
.ecm-method-picker button {
  min-width: 0;
  border: 1px solid var(--ecm-line);
  border-radius: 11px;
  background: #fff;
  padding: 11px 4px;
  font-size: 9px;
  font-weight: 800;
}
.ecm-method-picker button[aria-pressed="true"] {
  background: #17171b;
  color: #fff;
}
.ecm-method-picker p,
.ecm-third-range p,
.ecm-help {
  margin: 12px 0 0;
  color: #6b6972;
  font-size: 11px;
  line-height: 1.45;
}
.ecm-third-toggle {
  width: 100%;
  margin-top: 17px;
}
.ecm-third {
  display: grid;
  grid-template-columns: 185px 1fr;
  gap: 16px;
  align-items: center;
  margin-top: 12px;
  border: 1px solid var(--ecm-line);
  border-radius: 21px;
  padding: 14px;
}
.ecm-third .ecm-color-field {
  height: 74px;
}
.ecm-result {
  position: relative;
  display: flex;
  min-height: 290px;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-radius: 25px;
  background: var(--ecm-mix);
  padding: 31px;
  color: var(--ecm-mix-text);
}
.ecm-result:after {
  content: "";
  position: absolute;
  right: -60px;
  bottom: -95px;
  width: 270px;
  height: 270px;
  border: 2px solid currentColor;
  border-radius: 50%;
  opacity: 0.2;
}
.ecm-result-top {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.ecm-result h3 {
  margin: 0 0 7px;
  font-size: 28px;
  letter-spacing: -0.04em;
  text-transform: capitalize;
}
.ecm-result p {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  opacity: 0.75;
}
.ecm-result button {
  align-self: flex-start;
  border: 1px solid currentColor;
  border-radius: 13px;
  background: transparent;
  padding: 13px 17px;
  color: inherit;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}
.ecm-result > strong {
  position: relative;
  z-index: 1;
  font-size: clamp(48px, 6vw, 73px);
  letter-spacing: -0.06em;
}
.ecm-formats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 12px;
}
.ecm-format {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--ecm-line);
  border-radius: 17px;
  background: #fff;
  padding: 15px;
}
.ecm-format strong {
  display: block;
  margin-top: 7px;
  font-size: 13px;
}
.ecm-format button {
  display: grid;
  flex: 0 0 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--ecm-line);
  border-radius: 13px;
  background: #f8f7f5;
  font-size: 22px;
}
.ecm-code {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 11px;
  border-radius: 17px;
  background: #17171b;
  padding: 14px 17px;
  color: #fff;
}
.ecm-code code {
  min-width: 0;
  overflow: hidden;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ecm-code button {
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 11px;
  background: transparent;
  padding: 10px;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}
.ecm-section {
  padding: 85px 0 0;
}
.ecm-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 27px;
}
.ecm-section-head h2 {
  font-size: var(--egt-section-title-size);
}
.ecm-section-head > p {
  max-width: 410px;
  margin: 0;
  color: #6b6972;
  font-size: 15px;
  line-height: 1.5;
}
.ecm-method-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.ecm-method-grid button {
  overflow: hidden;
  border: 1px solid var(--ecm-line);
  border-radius: 18px;
  background: #fff;
  padding: 0;
  text-align: left;
  transition: transform 0.2s;
}
.ecm-method-grid button:hover {
  transform: translateY(-3px);
}
.ecm-method-grid button[aria-pressed="true"] {
  box-shadow: 0 0 0 3px #17171b;
}
.ecm-method-grid button > span {
  display: block;
  height: 112px;
}
.ecm-method-grid strong,
.ecm-method-grid small {
  display: block;
  padding: 0 14px;
}
.ecm-method-grid strong {
  padding-top: 14px;
  font-size: 13px;
}
.ecm-method-grid small {
  padding-top: 5px;
  padding-bottom: 14px;
  color: #6b6972;
}
.ecm-recipe-box {
  margin-top: 18px;
  border: 1px solid var(--ecm-line);
  border-radius: 22px;
  background: #fff;
  padding: 20px;
}
.ecm-recipe-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.ecm-recipe-head strong,
.ecm-recipe-head span {
  display: block;
}
.ecm-recipe-head span {
  margin-top: 3px;
  color: #6b6972;
  font-size: 10px;
}
.ecm-recipe-list {
  display: flex;
  gap: 10px;
  margin-top: 17px;
  overflow-x: auto;
  padding: 2px 2px 7px;
}
.ecm-empty {
  margin: 5px 0;
  color: #6b6972;
  font-size: 11px;
}
.ecm-recipe {
  position: relative;
  flex: 0 0 240px;
  overflow: hidden;
  border: 1px solid var(--ecm-line);
  border-radius: 16px;
}
.ecm-recipe-use {
  display: block;
  width: 100%;
  border: 0;
  background: #fff;
  padding: 0;
  text-align: left;
}
.ecm-recipe-result {
  display: grid;
  height: 70px;
  place-items: center;
  font-size: 11px;
  font-weight: 800;
}
.ecm-recipe-sources {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
}
.ecm-recipe-sources i {
  display: grid;
  height: 33px;
  place-items: center;
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
}
.ecm-recipe-copy {
  display: block;
  padding: 11px;
}
.ecm-recipe-copy strong,
.ecm-recipe-copy small {
  display: block;
}
.ecm-recipe-copy small {
  margin-top: 3px;
  color: #6b6972;
}
.ecm-recipe-remove {
  position: absolute;
  right: 7px;
  top: 7px;
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  font-size: 18px;
}
.ecm-scale-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}
.ecm-scale {
  display: grid;
  min-height: 290px;
  overflow: hidden;
  border: 10px solid #fff;
  border-radius: 28px;
  box-shadow: 0 0 0 1px var(--ecm-line);
}
.ecm-scale button {
  position: relative;
  min-width: 0;
  border: 0;
  padding: 0;
}
.ecm-scale span {
  position: absolute;
  top: 50%;
  left: 50%;
  padding: 7px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 6px 18px rgba(23, 23, 27, 0.16);
  color: #17171b !important;
  transform: translate(-50%, -50%) scale(0.96);
  white-space: nowrap;
  font-size: 12px;
  font-weight: 800;
  opacity: 0;
  backdrop-filter: blur(4px);
  transition:
    opacity 0.2s,
    transform 0.2s;
}
.ecm-scale button:hover span,
.ecm-scale button:focus-visible span {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.ecm-use-grid,
.ecm-tools-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.ecm-use-grid article {
  position: relative;
  display: flex;
  min-height: 330px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--ecm-line);
  border-radius: 24px;
  background: #fff;
}
.ecm-use-grid article > span {
  position: absolute;
  left: 15px;
  right: 15px;
  bottom: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 12px;
  background: #fff;
  padding: 12px 14px;
  color: #17171b;
}
.ecm-use-grid strong,
.ecm-use-grid small {
  display: block;
}
.ecm-brand-card > div {
  display: grid;
  width: 145px;
  height: 145px;
  place-items: center;
  border-radius: 38% 62% 58% 42%;
  background: var(--ecm-mix);
  color: var(--ecm-mix-text);
  font-size: 65px;
  font-weight: 850;
  transform: rotate(-9deg);
}
.ecm-ui-card {
  background: color-mix(in srgb, var(--ecm-mix) 12%, #fff) !important;
}
.ecm-ui-window {
  width: 72%;
  border-radius: 16px;
  background: #fff;
  padding: 24px;
  box-shadow: 0 20px 45px rgba(23, 23, 27, 0.12);
}
.ecm-ui-window i {
  display: block;
  height: 10px;
  margin-bottom: 10px;
  border-radius: 8px;
  background: #e7e4e1;
}
.ecm-ui-window i:nth-child(2) {
  width: 65%;
}
.ecm-ui-window button {
  margin-top: 18px;
  border: 0;
  border-radius: 8px;
  background: var(--ecm-mix);
  padding: 10px 15px;
  color: var(--ecm-mix-text);
  font-size: 10px;
  font-weight: 800;
}
.ecm-poster-card {
  background: var(--ecm-mix) !important;
  color: var(--ecm-mix-text);
}
.ecm-poster-card > div {
  font-size: 36px;
  font-weight: 850;
  letter-spacing: -0.05em;
  line-height: 0.95;
}
.ecm-tools-grid a {
  overflow: hidden;
  border: 1px solid var(--ecm-line);
  border-radius: 24px;
  background: #fff;
  color: #17171b;
  text-decoration: none;
  transition: transform 0.2s;
}
.ecm-tools-grid a:hover {
  transform: translateY(-4px);
}
.ecm-tool-art {
  position: relative;
  display: flex;
  height: 230px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #f6f3ef;
}
.ecm-tools-grid a > span {
  display: block;
  padding: 20px;
}
.ecm-tools-grid strong {
  display: block;
  margin: 8px 0;
  font-size: 18px;
}
.ecm-tools-grid p {
  margin: 0;
  color: #6b6972;
  font-size: 12px;
  line-height: 1.5;
}
.ecm-palette-art i {
  width: 90px;
  height: 120px;
  border-radius: 25px;
  background: var(--ecm-a);
  transform: rotate(-8deg);
}
.ecm-palette-art i:nth-child(2) {
  background: var(--ecm-mix);
  transform: translateX(-35px) rotate(4deg);
}
.ecm-palette-art i:nth-child(3) {
  background: var(--ecm-b);
  transform: translateX(-70px) rotate(13deg);
}
.ecm-complement-art i {
  width: 100px;
  height: 100px;
  border: 14px solid #fff;
  border-radius: 50%;
  background: var(--ecm-mix);
  box-shadow: 0 15px 30px rgba(23, 23, 27, 0.12);
}
.ecm-complement-art i + i {
  margin-left: -20px;
  background: var(--ecm-b);
}
.ecm-picker-art i {
  width: 155px;
  height: 155px;
  border: 12px solid #fff;
  border-radius: 50%;
  background: conic-gradient(red, #ff0, #0f0, #0ff, #00f, #f0f, red);
  box-shadow: 0 15px 30px rgba(23, 23, 27, 0.12);
}
.ecm-guide {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 70px;
  padding-bottom: 15px;
}
.ecm-guide h2 {
  font-size: var(--egt-guide-title-size);
}
.ecm-guide h3 {
  margin: 0 0 17px;
  font-size: 25px;
}
.ecm-guide p,
.ecm-guide li {
  color: #5f5d66;
  font-size: 15px;
  line-height: 1.7;
}
.ecm-guide ol {
  margin: 0 0 20px;
  padding-left: 21px;
}
.ecm-guide a {
  color: #236bea;
}
.ecm-toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9999;
  transform: translateY(18px);
  border-radius: 12px;
  background: #17171b;
  padding: 12px 16px;
  color: #fff;
  font-size: 12px;
  font-weight: 750;
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
}
.ecm-toast[data-visible="true"] {
  transform: none;
  opacity: 1;
}
@media (max-width: 980px) {
  .ecm-hero {
    grid-template-columns: 1fr;
  }
  .ecm-orbit {
    display: none;
  }
  .ecm-studio {
    grid-template-columns: 1fr;
  }
  .ecm-panel + .ecm-panel {
    border-left: 0;
    border-top: 1px solid var(--ecm-line);
  }
  .ecm-method-grid {
    grid-template-columns: repeat(5, minmax(145px, 1fr));
    overflow-x: auto;
    padding: 3px;
  }
  .ecm-use-grid,
  .ecm-tools-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ecm-guide {
    grid-template-columns: 1fr;
    gap: 25px;
  }
}
@media (max-width: 600px) {
  .ecm-root {
    padding: 22px 0 55px;
    margin-top: 16px;
  }
  .ecm-hero {
    padding: 25px 3px 32px;
  }
  .ecm-title {
    margin: 13px 0 25px;
    font-size: var(--egt-hero-title-size);
    line-height: 0.88;
  }
  .ecm-title span:after {
    height: 4px;
    margin-top: 8px;
  }
  .ecm-lead {
    font-size: 15px;
    line-height: 1.5;
  }
  .ecm-studio {
    border-radius: 25px;
  }
  .ecm-panel {
    padding: 24px 18px;
  }
  .ecm-panel-head {
    margin-bottom: 19px;
  }
  .ecm-panel-head h2 {
    font-size: 25px;
  }
  .ecm-live {
    padding: 8px 10px;
  }
  .ecm-source-grid {
    gap: 8px;
  }
  .ecm-color-card {
    border-radius: 16px;
    padding: 9px;
  }
  .ecm-color-field {
    height: 83px;
  }
  .ecm-hex-input {
    font-size: 11px;
  }
  .ecm-source-actions {
    gap: 6px;
  }
  .ecm-source-actions button {
    padding: 8px 4px;
    font-size: 8px;
  }
  .ecm-control-box {
    padding: 14px;
  }
  .ecm-method-picker > div {
    display: flex;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .ecm-method-picker button {
    flex: 0 0 66px;
  }
  .ecm-third {
    grid-template-columns: 1fr;
  }
  .ecm-result {
    min-height: 230px;
    padding: 22px;
  }
  .ecm-result h3 {
    font-size: 23px;
  }
  .ecm-result > strong {
    font-size: 46px;
  }
  .ecm-formats {
    gap: 6px;
  }
  .ecm-format {
    padding: 11px;
  }
  .ecm-format strong {
    font-size: 10px;
  }
  .ecm-format button {
    flex-basis: 35px;
    height: 35px;
  }
  .ecm-code {
    padding: 12px;
  }
  .ecm-code button {
    padding: 8px;
    font-size: 8px;
  }
  .ecm-section {
    padding-top: 58px;
  }
  .ecm-section-head {
    display: block;
    margin-bottom: 20px;
  }
  .ecm-section-head h2 {
    font-size: var(--egt-section-title-size);
    line-height: 0.95;
  }
  .ecm-section-head > p {
    margin-top: 14px;
    font-size: 13px;
  }
  .ecm-recipe-head {
    align-items: flex-start;
  }
  .ecm-scale-actions {
    justify-content: flex-start;
    margin-top: 16px;
  }
  .ecm-scale {
    min-height: 240px;
    border-width: 7px;
  }
  .ecm-scale span {
    padding: 5px 7px;
    font-size: 9px;
  }
  .ecm-use-grid,
  .ecm-tools-grid {
    grid-template-columns: 1fr;
  }
  .ecm-use-grid article {
    min-height: 300px;
  }
  .ecm-tool-art {
    height: 200px;
  }
  .ecm-guide p,
  .ecm-guide li {
    font-size: 14px;
  }
}

.ecm-root { background:#fff; --ecm-cream:#fafafa; --ecm-line:#e4e4e7; }
.ecm-root .ecm-studio {display:flex;flex-direction:column}
.ecm-root .ecm-panel + .ecm-panel {border-left:0;border-top:1px solid #e4e4e7}
.ecm-root .ecm-color-card {display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:16px;border-radius:12px;box-shadow:none}
.ecm-root .ecm-color-top {grid-column:1/-1;margin:0}
.ecm-root .ecm-color-chip {height:44px;width:44px;border:3px solid white;outline:1px solid #e4e4e7;border-radius:10px;display:block;padding:0}
.ecm-root .ecm-color-card .ecm-hex-input {width:100%;min-width:0;margin:0}
.ecm-root .ecm-source-actions {margin:18px 0}
.ecm-root .ecm-control-box + button {margin-top:18px}
.ecm-root .ecm-section {padding-top:28px}
.ecm-root .ecm-result-panel .ecm-color-studio {margin-top:28px;padding-top:24px;border-top:1px solid #e4e4e7}
.ecm-root .ecm-result {min-height:260px}
.ecm-root.ecm-color-editor {width:min(400px,calc(100vw - 32px))}
.ecm-picker-preview {height:100px;border-radius:10px;margin-bottom:20px}
.ecm-picker-channel {display:block;margin:16px 0}
.ecm-picker-channel>span {display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}
.ecm-picker-channel input {width:100%;accent-color:#18181b}
.ecm-root .ecm-studio { border:1px solid #e4e4e7; border-radius:20px; box-shadow:0 4px 24px #18181b06; }
.ecm-root .ecm-panel { background:#fff; }
.ecm-root .ecm-panel h2 { font-size:clamp(23px,2.3vw,32px); letter-spacing:-.04em; }
.ecm-root .ecm-control-box { background:#fafafa; border:1px solid #e4e4e7; border-radius:12px; }
.ecm-root .ecm-advanced-tools { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:24px 0; border-bottom:1px solid #e4e4e7; }
.ecm-advanced-tools > div:first-child { margin-right:auto; }
.ecm-advanced-tools p { color:#71717a; margin:6px 0 0; font-size:14px; }
.ecm-root .ecm-feature-button { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:10px 16px; border:1px solid #e4e4e7; border-radius:9px; background:#fff; color:#18181b; font-size:14px; font-weight:600; line-height:1.4; }
.ecm-feature-button > span { color:#b77909; font-size:20px; }
.ecm-dialog-overlay { position:fixed; inset:0; background:#09090b80; z-index:2147483600; }
.ecm-root.ecm-dialog { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); width:min(860px,calc(100vw - 32px)); max-height:85dvh; overflow:auto; z-index:2147483601; margin:0; padding:32px; background:#fff; color:#18181b; border:1px solid #e4e4e7; border-radius:16px; box-shadow:0 24px 80px #0003; }
.ecm-dialog-title { font-size:24px; font-weight:650; letter-spacing:-.04em; margin:0 40px 8px 0; }
.ecm-dialog-description { color:#71717a; font-size:15px; line-height:1.6; margin:0 32px 24px 0; }
.ecm-root .ecm-dialog-close { position:absolute; top:16px; right:16px; width:36px; height:36px; border:1px solid #e4e4e7; border-radius:8px; background:#fff; color:#18181b; font-size:24px; }
.ecm-dialog .ecm-section { margin:0; padding:0; }
.ecm-dialog .ecm-section-head h2 { font-size:22px; }
.ecm-dialog .ecm-method-grid { grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); }
.ecm-locked-preview { filter:blur(5px); opacity:.55; max-height:160px; overflow:hidden; pointer-events:none; user-select:none; }
.ecm-upgrade { padding:24px 8px 8px; text-align:center; }
.ecm-upgrade > span { color:#b77909; font-size:28px; }
.ecm-upgrade h3 { font-size:25px; letter-spacing:-.035em; margin:12px 0; }
.ecm-upgrade p { max-width:440px; margin:0 auto 24px; color:#71717a; line-height:1.6; }
.ecm-root .ecm-upgrade a { display:inline-flex; align-items:center; gap:16px; padding:14px 22px; background:#18181b; color:#fff; border-radius:10px; font-weight:600; text-decoration:none; }
.ecm-upgrade small { display:block; color:#71717a; margin-top:16px; }
.ecm-contrast-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ecm-contrast-grid article { border:1px solid #e4e4e7; border-radius:12px; padding:16px; }
.ecm-contrast-grid article > div { padding:28px; border-radius:8px; font-size:48px; margin-bottom:20px; }
.ecm-contrast-grid small { display:block; font-size:14px; }
.ecm-contrast-grid p { font-size:14px; }
.ecm-root button:focus-visible,.ecm-root a:focus-visible { outline:2px solid #71717a; outline-offset:3px; }
@media(max-width:600px) { .ecm-root.ecm-dialog { padding:24px 18px; } .ecm-contrast-grid { grid-template-columns:1fr; } .ecm-root .ecm-advanced-tools { align-items:stretch; } .ecm-advanced-tools > div:first-child { width:100%; } }

/* Compact first-screen workspace; inspiration follows the editor. */
.ecm-root:not(.ecm-dialog) {padding:20px 0 48px;margin-top:0}
.ecm-root .ecm-shell {width:calc(100% - 48px);max-width:1440px;padding:0}
.ecm-root .ecm-hero {display:block;padding:8px 0 18px}
.ecm-root .ecm-hero .ecm-kicker,.ecm-root .ecm-orbit,.ecm-root .ecm-lead {display:none}
.ecm-root .ecm-title {font-size:32px;line-height:1.1;margin:0;letter-spacing:-.05em}
.ecm-root .ecm-title:after {display:none}
.ecm-root .ecm-studio {display:grid;grid-template-columns:1fr;border-radius:16px}
.ecm-root .ecm-panel {padding:20px 24px}
.ecm-root .ecm-panel + .ecm-panel {border-top:1px solid #e4e4e7;border-left:0}
.ecm-root .ecm-panel-head {margin-bottom:14px;gap:12px}
.ecm-root .ecm-panel-head h2 {font-size:20px;line-height:1.2;margin:0}
.ecm-root .ecm-panel-head .ecm-step {display:none}
.ecm-root .ecm-source-grid {gap:12px}
.ecm-root .ecm-color-card {padding:10px;gap:8px}
.ecm-root .ecm-color-top {font-size:10px}
.ecm-root .ecm-source-actions {margin:10px 0;gap:10px}
.ecm-root .ecm-source-actions button {min-height:36px;padding:8px 12px;letter-spacing:0;font-size:12px}
.ecm-root .ecm-control-box {padding:12px;gap:12px}
.ecm-root .ecm-method-picker {padding-top:10px}
.ecm-root .ecm-method-picker>div {margin-top:8px;gap:5px}
.ecm-root .ecm-method-picker button {padding:8px;min-height:32px}
.ecm-root .ecm-method-picker p,.ecm-root .ecm-help {display:none}
.ecm-root .ecm-control-box + button {margin-top:10px;min-height:34px;padding:6px 12px}
.ecm-root .ecm-result {min-height:145px;padding:18px;border-radius:12px}
.ecm-root .ecm-result h3 {font-size:20px}
.ecm-root .ecm-result p {font-size:11px}
.ecm-root .ecm-result>strong {font-size:38px;margin-top:20px}
.ecm-root .ecm-formats {grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px}
.ecm-root .ecm-format {padding:8px;min-width:0;border-radius:8px}
.ecm-root .ecm-format strong {font-size:10px;overflow-wrap:anywhere}
.ecm-root .ecm-format span {font-size:8px}
.ecm-root .ecm-format button {padding:4px;min-width:24px;min-height:28px}
.ecm-root .ecm-result-panel>.ecm-code {display:none}
.ecm-root .ecm-result-panel>.ecm-feature-button {margin-top:10px;min-height:34px;padding:6px 14px}
.ecm-root .ecm-studio>.ecm-color-studio {grid-column:1/-1;margin:0;padding:16px 24px;border-top:1px solid #e4e4e7}
.ecm-root .ecm-studio .ecm-tone-heading {gap:10px}
.ecm-root .ecm-studio .ecm-tone-heading .ecm-step,.ecm-root .ecm-studio .ecm-tone-heading p,.ecm-root .ecm-studio .ecm-name-credit {display:none}
.ecm-root .ecm-studio .ecm-tone-heading h2 {font-size:16px;margin:0;letter-spacing:-.02em}
.ecm-root .ecm-studio .ecm-tone-heading h2 span {font-size:10px}
.ecm-root .ecm-studio .ecm-feature-button {min-height:32px;padding:5px 10px;font-size:11px}
.ecm-root .ecm-studio .ecm-tones {margin-top:12px}
.ecm-root .ecm-studio .ecm-tones button {min-height:72px;padding:9px 8px;font-size:10px;gap:5px}
.ecm-root .ecm-studio .ecm-tones b {font-size:12px}
.ecm-root .ecm-studio .ecm-copy-status:empty {display:none}
.ecm-root .ecm-advanced-tools {padding:10px 0;justify-content:flex-end;border-bottom:0;gap:8px}
.ecm-root .ecm-advanced-tools>div:first-child {display:none}
.ecm-root .ecm-advanced-tools>.ecm-feature-button {min-height:32px;padding:5px 12px;font-size:11px}
.ecm-root .ecm-examples {margin-top:32px}
@media(max-width:760px) {
 .ecm-root .ecm-shell {width:calc(100% - 32px)}
 .ecm-root .ecm-studio {grid-template-columns:1fr}
 .ecm-root .ecm-panel {padding:16px}
 .ecm-root .ecm-panel + .ecm-panel {border-left:0;border-top:1px solid #e4e4e7}
 .ecm-root .ecm-studio>.ecm-color-studio {padding:16px}
 .ecm-root .ecm-formats {grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Final layout layer: inputs, result, then a single coherent tonal strip. */
.ecm-root {--ecm-text-xs:12px;--ecm-text-sm:14px;--ecm-text-body:16px;--ecm-text-heading:20px;--ecm-text-section:28px;--ecm-text-hero:36px}
.ecm-root .ecm-hero .ecm-lead,.ecm-root .ecm-examples header>p,.ecm-root .ecm-dialog-description {font-size:var(--ecm-text-body);line-height:1.55}
.ecm-root .ecm-title {font-size:var(--ecm-text-hero)}
.ecm-root .ecm-examples h2 {font-size:var(--ecm-text-section)}
.ecm-root .ecm-studio .ecm-tone-heading h2 {font-size:var(--ecm-text-heading)}
.ecm-root .ecm-studio .ecm-tones button {position:relative;min-height:94px;padding-top:10px}
.ecm-root .ecm-studio .ecm-tones .is-base-tone {z-index:1;box-shadow:inset 0 -3px 0 currentColor,inset 0 0 0 1px rgba(255,255,255,.72)}
.ecm-root .ecm-studio .ecm-tones b {display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ecm-root .ecm-studio .ecm-tones .ecm-base-marker {display:inline-block;width:7px;height:7px;flex:0 0 7px;border:2px solid currentColor;border-radius:50%;box-sizing:border-box;opacity:.9}
.ecm-root .ecm-source-actions {grid-template-columns:1fr 1fr auto}
.ecm-root .ecm-source-actions button:disabled {opacity:.4;cursor:not-allowed}
.ecm-save-label {display:block;font-size:14px;margin-bottom:18px}
.ecm-save-label input {display:block;margin-top:8px;width:100%;box-sizing:border-box}
.ecm-root:not(.ecm-dialog) {padding-top:calc(104px + env(safe-area-inset-top,0px))}
.ecm-root .ecm-shell {width:calc(100% - 80px);max-width:1320px}
.ecm-root .ecm-hero .ecm-lead {display:block;font-size:var(--ecm-text-body);line-height:1.55;margin:7px 0 0;max-width:760px}
.ecm-root .ecm-studio>.ecm-panel:first-child {display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;align-items:start}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-panel-head {grid-column:1/-1;margin-bottom:0}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-grid {grid-column:1;grid-row:2}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-control-box {grid-column:2;grid-row:2/5;align-self:stretch;box-sizing:border-box;align-content:space-between}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions {grid-column:1;grid-row:3;margin:0}
.ecm-root .ecm-studio>.ecm-panel:first-child>.ecm-feature-button {grid-column:1;grid-row:4;justify-self:stretch;display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;padding:8px 12px;margin:0;border-radius:9px;font-size:12px;box-sizing:border-box}
.ecm-root .ecm-result-panel {display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:10px 20px}
.ecm-root .ecm-result-panel .ecm-panel-head {display:none}
.ecm-root .ecm-result-panel .ecm-result {grid-column:1;grid-row:1;min-height:110px}
.ecm-root .ecm-result-panel .ecm-formats {grid-column:2;grid-row:1;margin:0;grid-template-columns:1fr 1fr;align-self:stretch;grid-template-rows:1fr 1fr}
.ecm-root .ecm-result-panel .ecm-format {height:100%;box-sizing:border-box;align-items:center}
.ecm-root .ecm-method-pro {margin-left:5px;font-size:9px;font-weight:500;color:#71717a}
.ecm-root.ecm-account-prompt {width:min(460px,calc(100vw - 32px))}
.ecm-root .ecm-result-panel>.ecm-feature-button {grid-column:2;grid-row:2;margin:0;justify-self:start}
.ecm-root .ecm-studio .ecm-tones {display:flex;gap:0;border-radius:10px;overflow:hidden}
.ecm-root .ecm-studio .ecm-tones button {flex:1;min-width:0;border-radius:0;min-height:76px;padding:10px 8px}
.ecm-root .ecm-tone-tools {gap:0}
.ecm-root .ecm-studio .ecm-tone-tools button {border:0;background:transparent;color:#52525b;padding:6px 12px;border-radius:6px}
.ecm-root .ecm-studio .ecm-tone-tools button:hover {background:#f4f4f5;color:#18181b}

/* A calmer editor hierarchy: sources, actions, controls, result, then tones. */
.ecm-root .ecm-studio>.ecm-panel:first-child {grid-template-columns:minmax(0,2fr) minmax(190px,1fr);gap:14px 16px;padding:26px 32px}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-panel-head {grid-column:1/-1;grid-row:1}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-grid {grid-column:1/-1;grid-row:2;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.ecm-root .ecm-color-slot {position:relative;min-width:0}
.ecm-root .ecm-color-slot .ecm-color-card {height:100%;box-sizing:border-box}
.ecm-root .ecm-color-slot .ecm-color-top {padding-right:24px}
.ecm-root .ecm-remove-color {position:absolute;top:7px;right:7px;z-index:2;display:grid;width:24px;height:24px;place-items:center;padding:0;border:0;border-radius:7px;background:#f4f4f5;color:#52525b;font-size:17px;line-height:1}
.ecm-root .ecm-remove-color:hover {background:#e4e4e7;color:#18181b}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions {grid-column:1;grid-row:3;display:flex;gap:6px;align-self:stretch}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions .ecm-icon-action {display:grid;width:40px;min-width:40px;height:36px;min-height:36px;place-items:center;padding:0;border-color:#e4e4e7;border-radius:9px;background:#fff;color:#3f3f46;box-shadow:none}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions .ecm-icon-action:last-child {border-color:#e4e4e7;background:#fff;color:#3f3f46;box-shadow:none}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions .ecm-icon-action:hover:not(:disabled) {transform:none;background:#f4f4f5;color:#18181b}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions .ecm-icon-action span {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-actions .ecm-icon-action svg {display:block}
.ecm-root .ecm-studio>.ecm-panel:first-child>.ecm-feature-button {grid-column:2;grid-row:3;min-height:36px;align-self:stretch}
.ecm-root .ecm-studio>.ecm-panel:first-child>.ecm-add-color {justify-self:end;display:inline-flex;width:auto;min-width:44px;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border-radius:9px}
.ecm-root .ecm-add-color>span[aria-hidden] {font-size:20px;line-height:1}
.ecm-root .ecm-add-color .ecm-add-label {font-size:11px}
.ecm-root .ecm-add-color small {padding:2px 5px;border-radius:999px;background:#f4f4f5;color:#71717a;font-size:8px;text-transform:uppercase}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-control-box {grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:22px;padding:18px 20px;align-items:center}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-method-picker {padding:0 0 0 22px;border-top:0;border-left:1px solid #e4e4e7}
.ecm-root .ecm-studio>.ecm-panel:first-child .ecm-method-picker>div {margin-top:10px}
.ecm-root .ecm-weight-list {display:grid;gap:6px;margin-top:10px}
.ecm-root .ecm-weight-list label {display:grid;grid-template-columns:72px minmax(80px,1fr) 34px;gap:8px;align-items:center;font-size:10px;font-weight:700;color:#52525b}
.ecm-root .ecm-weight-list label>span {display:flex;align-items:center;gap:6px;white-space:nowrap}
.ecm-root .ecm-weight-list label i {width:9px;height:9px;border-radius:50%;border:1px solid #0001}
.ecm-root .ecm-weight-list input {width:100%;height:4px;margin:0;accent-color:var(--ecm-mix)}
.ecm-root .ecm-weight-list strong {text-align:right;font-size:10px}
.ecm-root .ecm-result-panel {padding:24px 32px;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:16px 24px}
.ecm-root .ecm-result-panel .ecm-result {min-height:178px;padding:24px 26px}
.ecm-root .ecm-result-panel .ecm-result>strong {font-size:42px;margin-top:24px}
.ecm-root .ecm-result-panel .ecm-formats {gap:8px}
.ecm-root .ecm-result-panel .ecm-format {padding:10px 12px}
.ecm-root .ecm-studio>.ecm-color-studio {padding:22px 32px 24px}
.ecm-root .ecm-studio .ecm-tone-heading {align-items:center;flex-wrap:nowrap}
.ecm-root .ecm-studio .ecm-tone-heading h2 {font-size:18px}
.ecm-root .ecm-studio .ecm-tone-tools {display:flex;gap:2px;padding:3px;border:1px solid #e4e4e7;border-radius:10px;background:#fafafa;overflow-x:auto}
.ecm-root .ecm-studio .ecm-tone-tools .ecm-feature-button {min-height:36px;padding:0;white-space:nowrap;background:transparent}
.ecm-root .ecm-studio .ecm-tone-tools .ecm-icon-tool {display:grid;width:38px;min-width:38px;place-items:center;color:#52525b}
.ecm-root .ecm-studio .ecm-tone-tools .ecm-icon-tool svg {display:block}
.ecm-root .ecm-studio .ecm-tone-tools .ecm-icon-tool .ecm-tool-label {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ecm-root .ecm-studio .ecm-tone-tools .ecm-icon-tool:hover {background:#fff;box-shadow:0 1px 3px #18181b14}
.ecm-root .ecm-studio .ecm-tones {margin-top:18px}
.ecm-root .ecm-studio .ecm-tones button {min-height:88px;padding:12px 10px;gap:7px}
.ecm-root .ecm-studio .ecm-tones b {font-size:13px}
@media(max-width:760px){
 .ecm-root:not(.ecm-dialog) {padding-top:calc(88px + env(safe-area-inset-top,0px))}
 .ecm-root .ecm-shell {width:calc(100% - 32px)}
 .ecm-root .ecm-studio>.ecm-panel:first-child {display:flex;flex-direction:column;align-items:stretch}
 .ecm-root .ecm-result-panel {display:block}
 .ecm-root .ecm-result-panel .ecm-formats {margin-top:10px}
 .ecm-root .ecm-result-panel>.ecm-feature-button {margin-top:10px}
 .ecm-root .ecm-studio .ecm-tones {overflow-x:auto}
 .ecm-root .ecm-studio .ecm-tones button {flex:0 0 72px}
 .ecm-root .ecm-tone-heading {align-items:start}
 .ecm-root .ecm-studio>.ecm-panel:first-child {display:flex;padding:18px 16px}
 .ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-grid {grid-template-columns:1fr 1fr}
 .ecm-root .ecm-studio>.ecm-panel:first-child>.ecm-add-color {align-self:flex-end}
 .ecm-root .ecm-studio>.ecm-panel:first-child .ecm-control-box {display:grid;grid-template-columns:1fr;gap:14px;padding:14px}
 .ecm-root .ecm-studio>.ecm-panel:first-child .ecm-method-picker {padding:14px 0 0;border-left:0;border-top:1px solid #e4e4e7}
 .ecm-root .ecm-result-panel {padding:18px 16px}
 .ecm-root .ecm-studio>.ecm-color-studio {padding:18px 16px 20px}
 .ecm-root .ecm-studio .ecm-tone-heading {align-items:stretch;flex-direction:column}
 .ecm-root .ecm-studio .ecm-tone-tools {width:100%;box-sizing:border-box}
}
@media(max-width:480px){
 .ecm-root .ecm-studio>.ecm-panel:first-child .ecm-source-grid {grid-template-columns:1fr}
}

