apps/phoenix_duskmoon/assets/css/neumorphic.css
:root {
  --neumorphic-color: hsl(0, 0%, 66.7%);
  --neumorphic-color: #aaa;
  --neumorphic-text-color: #444;
  --neumorphic-light: #fff8;
  --neumorphic-dark: #3338;

  --neumorphic-concave: linear-gradient(145deg, #999999, #b6b6b6);
  --neumorphic-convex: linear-gradient(145deg, #b6b6b6, #999999);

  --neumorphic-size: 1;
  --neumorphic-shadow: calc(1em * var(--neumorphic-size))
      calc(1em * var(--neumorphic-size))
      calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-dark),
    calc(1em * var(--neumorphic-size) * -1)
      calc(1em * var(--neumorphic-size) * -1)
      calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-light);

  --neumorphic-shadow-inset: inset calc(1em * var(--neumorphic-size))
      calc(1em * var(--neumorphic-size))
      calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-dark),
    inset calc(1em * var(--neumorphic-size) * -1)
      calc(1em * var(--neumorphic-size) * -1)
      calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-light);

  --neumorphic-filter: drop-shadow(
      calc(1em * var(--neumorphic-size)) calc(1em * var(--neumorphic-size))
        calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-dark)
    )
    drop-shadow(
      calc(1em * var(--neumorphic-size) * -1)
        calc(1em * var(--neumorphic-size) * -1)
        calc(1em * var(--neumorphic-size) * 1.5) var(--neumorphic-light)
    );

  --text-dark-shadow: 0.1em 0.1em 0.12em var(--neumorphic-dark);
  --text-light-shadow: -0.1em -0.1em 0.12em var(--neumorphic-light);
}

@utility bg-neumorphic {
  background-color: var(--neumorphic-color);
}

@utility neumorphic-surface-concave {
  background-image: radial-gradient(
    circle at center,
    color-mix(in srgb, var(--neumorphic-color) 80%, #000),
    color-mix(in srgb, var(--neumorphic-color) 90%, #000),
    var(--neumorphic-color),
    color-mix(in srgb, var(--neumorphic-color) 90%, #fff),
    color-mix(in srgb, var(--neumorphic-color) 80%, #fff)
  );
}

@utility neumorphic-surface-convex {
  background-image: radial-gradient(
    circle at center,
    color-mix(in srgb, var(--neumorphic-color) 80%, #fff),
    color-mix(in srgb, var(--neumorphic-color) 90%, #fff),
    var(--neumorphic-color),
    color-mix(in srgb, var(--neumorphic-color) 90%, #000),
    color-mix(in srgb, var(--neumorphic-color) 80%, #000)
  );
}

@utility neumorphic-text-* {
  text-shadow:
    calc(1rem * 0.01 * --value(integer)) calc(1rem * 0.01 * --value(integer)) calc(1rem * 0.01 * --value(integer)) var(--neumorphic-dark),
    calc(1rem * 0.01 * --value(integer) * -1) calc(1rem * 0.01 * --value(integer) * -1) calc(1rem * 0.01 * --value(integer)) var(--neumorphic-light);
}

@utility neumorphic-text-inset-* {
  color: transparent;
  background-clip: text;
  text-shadow:
    calc(1rem * 0.01 * --value(integer)) calc(1rem * 0.01 * --value(integer)) calc(1rem * 0.01 * --value(integer)) var(--neumorphic-dark),
    calc(1rem * 0.01 * --value(integer) * -1) calc(1rem * 0.01 * --value(integer) * -1) calc(1rem * 0.01 * --value(integer)) var(--neumorphic-light);
}

@utility neumorphic-shadow-* {
  box-shadow: 
    calc(1rem * --value(integer) * 0.01)
      calc(1rem * --value(integer) * 0.01)
      calc(1rem * --value(integer) * 0.01 * 1.5) 
      var(--neumorphic-dark),
    calc(1rem * --value(integer) * 0.01 * -1)
      calc(1rem * --value(integer) * 0.01 * -1)
      calc(1rem * --value(integer) * 0.01 * 1.5) 
      var(--neumorphic-light);
}


@utility neumorphic-shadow-inset-* {
  box-shadow: 
    inset calc(1rem * --value(integer) * 0.01)
      calc(1rem * --value(integer) * 0.01)
      calc(1rem * --value(integer) * 0.01 * 1.5) var(--neumorphic-dark),
    inset calc(1rem * --value(integer) * 0.01 * -1)
      calc(1rem * --value(integer) * 0.01 * -1)
      calc(1rem * --value(integer) * 0.01 * 1.5) var(--neumorphic-light);
}


@utility neumorphic-filter-* {
 filter:
    drop-shadow(
      calc(1rem * --value(integer) * 0.01) calc(1rem * --value(integer) * 0.01)
        calc(1rem * --value(integer) * 0.01 * 1.5) var(--neumorphic-dark)
    )
    drop-shadow(
      calc(1rem * --value(integer) * 0.01 * -1)
        calc(1rem * --value(integer) * 0.01 * -1)
        calc(1rem * --value(integer) * 0.01 * 1.5) var(--neumorphic-light)
    );
}

@import "./neumorphic/table.css";
@import "./neumorphic/button.css";
@import "./neumorphic/range.css";
@import "./neumorphic/checkbox.css";
@import "./neumorphic/radio.css";
