@font-face {
  font-family: 'GeistMono';
  font-display: swap;
  src: url(fonts/GeistMono.woff2) format('woff2-variations');
  font-weight: 300 700;
  font-style: normal;
}

:root {
  --colorBg: #121212;
  --colorFg: #efefef;
  --colorGray: #acacac;
  --colorDarkGray: #7a7a7a;
  --colorPrimary: #ff581b;
  --colorSecondary: #0000ff;
  --fontFamily: 'GeistMono', monospace;
  --textNormal: 1rem; /* 16px */
  --textSmall: 0.875rem; /* 14px */
  --textLeading: 0.8125rem; /* 13px */
  --gr: 1.21;
}

@media (max-width: 768px) {
  :root {
    --textLeading: 0.75rem; /* 12px */
    --gr: 1.618;
  }
}

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

::selection {
  background: var(--colorSecondary);
}

body {
  --x: 0px;
  --y: 0px;

  display: grid;
  min-height: 100dvh;
  background-color: var(--colorBg);
  color: var(--colorFg);
  line-height: 1.5;
  font-family: var(--fontFamily);
  overflow: clip;
  -webkit-font-smoothing: antialiased;
  perspective: 75vw;
  background-image: linear-gradient(0deg, var(--colorBg), #0000);
  background-repeat: round;
  background-size: 3px 3px;
  background-blend-mode: overlay;
}

body::before {
  --color: var(--colorFg);
  --fontSize: 30vw;
  --height: fit-content;
  --left: -25%;

  content: attr(data-kanji);
  font-size: var(--fontSize);
  user-select: none;
  text-align: center;
  height: var(--height);
  width: fit-content;
  position: fixed;
  inset: 0 0 0 var(--left);
  z-index: -1;
  margin: auto;
  pointer-events: none;
  opacity: 0.09;
  -webkit-text-fill-color: var(--colorBg);
  color: transparent;
  text-shadow: var(--x) var(--y) 0 var(--color), -1px -1px 0 var(--color), 1px -1px 0 var(--color),
    -1px 1px 0 var(--color), 1px 1px 0 var(--color);
  transform-style: preserve-3d;
  transform: rotate3d(1, -1, 1, 45deg);
  transition: text-shadow 0.3s linear;
}

@media (prefers-reduced-motion: reduce) {
  body::before {
    transition: none;
  }
}

@media (max-width: 768px) {
  body {
    padding: 24px;
  }

  body::before {
    --fontSize: 50vw;
    --height: 100dvh;
    --left: 0%;

    writing-mode: vertical-lr;
    transform: none;
  }
}

.title {
  font-weight: 400;
  font-size: var(--textNormal);
}

.text {
  font-size: var(--textSmall);
}

.leading {
  font-size: var(--textLeading);
}

.accent {
  color: var(--colorPrimary);
}

#intro {
  align-content: center;
  justify-items: center;
  position: relative;
  border: 1px solid var(--colorPrimary);
  padding: 2rem;
  margin: auto;
  text-align: center;
  text-wrap: balance;
}

@media (max-width: 768px) {
  #intro {
    width: 100%;
    height: 100%;
  }
}

.logo {
  --size: 72px;

  width: var(--size);
  height: var(--size);
  color: var(--colorPrimary);
  margin-bottom: calc(14px * var(--gr));
}

#intro h1 {
  margin-bottom: calc(12px * var(--gr));
}

#intro::before {
  content: 'website under construction';
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='12' height='12' fill='rgb(255, 88, 27)'%3E%3Cpath d='M12.8659 3.00017L22.3922 19.5002C22.6684 19.9785 22.5045 20.5901 22.0262 20.8662C21.8742 20.954 21.7017 21.0002 21.5262 21.0002H2.47363C1.92135 21.0002 1.47363 20.5525 1.47363 20.0002C1.47363 19.8246 1.51984 19.6522 1.60761 19.5002L11.1339 3.00017C11.41 2.52187 12.0216 2.358 12.4999 2.63414C12.6519 2.72191 12.7782 2.84815 12.8659 3.00017ZM4.20568 19.0002H19.7941L11.9999 5.50017L4.20568 19.0002Z'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 0 50%;
  padding-left: 16px;
  position: absolute;
  bottom: -32px;
  left: 0;
  font-size: var(--textLeading);
  color: var(--colorDarkGray);
}

#intro p {
  color: var(--colorGray);
  line-height: var(--gr);
}

#header .tags,
#footer .tags {
  --spacing: 32px;

  font-size: var(--textLeading);
  text-transform: uppercase;
  text-align: center;
  color: #0000;
  user-select: none;
  opacity: 0.6;

  &::before {
    content: '-- ' attr(data-text) ' --';
    position: absolute;
    left: 0;
    right: 0;
    letter-spacing: 1px;
    display: block;
    font-weight: 400;
    color: var(--colorGray);
  }
}

#header .tags::before {
  top: var(--spacing);
}

#footer .tags::before {
  bottom: var(--spacing);
}

@media (max-width: 768px) {
  #header .tags,
  #footer .tags {
    --spacing: 16px;
  }
}

address {
  font-style: normal;
}

.contact {
  margin-top: calc(24px * var(--gr));
}

.contact .leading {
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.contact .link {
  display: inline-flex;
  padding: 10px 8px;
  color: var(--colorGray);
  text-underline-offset: 8px;
  text-decoration-thickness: 1px;
  user-select: auto;
}

.contact .link .accent {
  color: inherit;
}

@media (hover: hover) {
  .contact .link {
    text-decoration: none;
  }

  .contact .link .accent {
    transition: color 0.2s linear;
  }

  .contact .link:hover .accent {
    color: var(--colorPrimary);
  }
}

.contact .text .value[aria-hidden="true"] {
  position: absolute;
  width: 0 !important;
  height: 0 !important;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(0);
  white-space: nowrap;
  word-wrap: normal;
  border: 0;
}
