@charset "UTF-8";

:root {
  --width: 800px;
  --primary-color: #a48f6e;
}

html,
body {
  height: 100vh;
  box-sizing: border-box;
}

body, input, button {
  font-size: 1rem;
  font-family: Arial, Helvetica, sans-serif;
}

body {
  background-image: radial-gradient(50% 80%, #fff 9%, #cbd5de 82%);
}

input {
  outline: none;
}

img {
  vertical-align: bottom;
}

/* layout */

.l-container {
  max-width: var(--width);
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}

.l-grid {
  display: grid;
}

.l-grid > * {
  min-width: 0;
}

.l-grid--5 {
  grid-template-columns: repeat(5, 1fr);
}

.l-grid--8 {
  grid-template-columns: repeat(8, 1fr);
}

/* object */

.o-input {
  padding: .7rem 1rem;
  font-size: .9rem;
  background-color: transparent;
  border: solid 1px #ccc;
}

.o-btn {
  padding: .7rem 1rem;
  border: none;
  background-color: transparent;
  border-radius: 5px;
  transition-duration: .3s;
}

.o-btn:hover {
  cursor: pointer;
}

.o-btn--primary {
  color: #fff;
  background-color: var(--primary-color);
}

.o-btn--primary:hover {
  background-color: #000;
}

/* utility */

.u-mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.u-my-1 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.u-my-2 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.u-gap-s {
  gap: 1rem;
}

.u-col-end-span-2 {
  grid-column-end: span 2;
}

/* component */

.c-user {
  position: relative;
  text-align: center;
  background-color: rgba(0, 0, 0, .07);
}

.c-user--bevel {
  clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%, 0 7%);
}

.c-user__desc,
.c-user__img-wrap {
  margin: 1rem;
}

.c-user__desc {
  word-break: break-all;
  line-height: 1.2;
}

.c-user__img {
  max-width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.c-user__desc--name {
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c-user__desc--email {
  color: rgba(0, 0, 0, .5);
  font-size: .9rem;
}

.c-user__btn {
  display: none;
}

.c-user:hover .c-user__btn {
  display: block;
  padding: .5rem .7rem;
  position: absolute;
  top: 0;
  right: 0;
  line-height: 1;
  color: #fff;
  background-color: rgba(0, 0, 0, .5);
  border: none;
}

.c-user__btn:hover {
  cursor: pointer;
}

/* component */

.header {
  padding: 3rem 2rem;
  text-align: center;
  background-color: #e8eef4;
  border-bottom: solid 1px #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, .1) inset;
}

.header__title {
  font-size: 5rem;
  font-weight: 700;
  color: rgba(0, 0, 0, .4);
  text-shadow: 1px 1px #fff;
}