@charset "UTF-8";
/* CSS Document */

:root{
  --bg:#0b0b0c;
  --fg:#f2f2f0;
  --muted:rgba(242,242,240,.6);
  --line:rgba(242,242,240,.12);
  --radius:18px;
  --max:1120px;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:system-ui, -apple-system, "Noto Sans JP", sans-serif;
}

a{ color:inherit; text-decoration:none; }

.grain{
  position:fixed;
  inset:-30%;
  opacity:.12;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 24px;
}

header{
  position:sticky;
  top:0;
  backdrop-filter:blur(8px);
}

.nav{
  display:flex;
  justify-content:space-between;
  padding:16px 0;
  border-bottom:1px solid var(--line);
}

.navlinks a{
  margin-left:16px;
  color:var(--muted);
}

.hero{
  padding:80px 0;
}

.headline{
  font-size:clamp(48px, 8vw, 110px);
  line-height:.95;
  transform:translateX(10vw);
}

.heroMeta{
  margin-top:20px;
  color:var(--muted);
}

.row{ margin-top:10px; }

.pill{
  display:inline-block;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  margin-right:6px;
}

section{
  padding:48px 0;
  border-top:1px solid var(--line);
}

.secHead{
  display:flex;
  justify-content:space-between;
  margin-bottom:20px;
}

.workList{
  border-top:1px solid var(--line);
}

.workItem{
  display:flex;
  justify-content:space-between;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  cursor:pointer;
}

.preview{
  position:fixed;
  right:24px;
  bottom:24px;
  width:420px;
  aspect-ratio:16/10;
  opacity:0;
  pointer-events:none;
  transition:.2s;
}

.preview.show{ opacity:1; }

.preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:var(--radius);
}

.twoCol{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
}

footer{
  padding:40px 0;
  color:var(--muted);
  font-size:12px;
}

/* modal */
.modal{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  background:rgba(0,0,0,.6);
}

.modal.show{ display:grid; }

.modalPanel{
  max-width:900px;
  background:#0b0b0c;
  border-radius:var(--radius);
  overflow:hidden;
}

.modalTop{
  display:flex;
  justify-content:space-between;
  padding:12px 16px;
  border-bottom:1px solid var(--line);
}

.modalBody{
  display:grid;
  grid-template-columns:1.2fr .8fr;
}

.modalMedia img{
  width:100%;
  height:100%;
  object-fit:cover;
}
