html {
    overflow-y: scroll;
}

* {
    box-sizing: border-box;
}

body {
    position:relative;
    margin:0;
    width:100%;
    font-family: "Starling Reg", Starling, "Times New Roman", Times;
    font-display: swap;
    font-style: normal;
    font-weight: normal;
    font-size: 18px;
    line-height: 24px;
    font-variant-numeric: common-ligatures oldstyle-nums;
    background:rgb(240, 240, 240);
    text-wrap: pretty;
}

p {
    position:relative;
    margin:0;
    padding:0;
    text-align:left;
}

i {
    font-family: "Starling It", Starling, "Times New Roman", Times;
    font-display: swap;
    font-style: italic;
    font-weight: normal;
}

img {
    position: relative;
    width:100%;
    height:auto;
}

video {
    position: relative;
    width:100%;
    height:auto;
}

nav {
    padding:12px 0px;
    width:100%;
    display:flex;
    justify-content: center;
}

nav p{
    font-variant-numeric: normal;
    text-align:center;
}

nav a {
    color: black;
}

nav a:hover {
    margin-bottom:-1px;
}

header {
    width:100%;
    border-top:1px solid black;
}

header p{
    font-variant-numeric: normal;
    text-align:center;
    width:100%;
}

article {
    padding:0 0 40px 0;
    text-align:center;
}

article figure {
    width:100%;
    height:auto;
    margin:0 auto 0 auto;
    padding:40px 0 0 0;
    line-height:0;
    font-size:0;
}

article img.large{
    width:100%;
    max-width:800px;
}

article img.small{
    width:100%;
    max-width:400px;
}

article img.medium{
    width: 100%;
    max-width: 600px;
    padding-right: 10px;
    padding-top: 10px;
}

article video{
    width:100%;
    max-width:800px;
}

.vimeo {
    width:100%;
    max-width:800px;
    margin:0 auto 0 auto;
}

video.sandbox{
    width: 100%;
    max-width: 480px;
    padding-right: 10px;
}

video.dandelion, img.dandelion {
    width: 100%;
    max-width: 500px;
    padding-right: 10px;
    padding-top: 10px;
}

video.hyperflower, img.hyperflower {
    width: 100%;
    max-width: 500px;
    padding-right: 10px;
    padding-top: 10px;
}

article figcaption {
    width:100%;
    max-width:600px;
    font-size: 13px;
    line-height: 17px;
    text-align:center;
    margin:9px auto 0 auto;
}

article p {
    width:100%;
    max-width:600px;
    margin:40px auto 0 auto;
}

section p + p{
    padding:0;
    margin:0 auto 0 auto;
    text-indent:36px;
}

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

a:hover{
    border-bottom:1px solid black;
}

.button {
    margin:40px 0 0 0;
    display:inline-block;
    padding:12px 20px 10px 20px;
    text-align:center;
    font-family: "Starling Reg", Starling, "Times New Roman", Times;
    text-decoration: none;
    cursor: pointer;

    border-width:1px;
    border-style:dashed;
    border-color:black;
    border-radius:50px;
    color:black;
}

.button:hover{
    border-style:solid;
}

/* index */

.list-nav {
    border-top:1px solid black;
    display:flex;
    justify-content: center;
    gap:0 12%;
    padding:40px 40px 40px 40px;
    width:100%;
}

.category {
    margin:0;
    padding:0;
}

.category:hover {
    cursor:pointer;
}

.category.inactive{
    color:rgb(200, 200, 200);
}

.category-icon {
    font-size:100px;
    line-height:100px;
    text-align:center;
}

.category-text{
    text-align:center;
}

.software {
    color:red;
}

.hardware {
    color:green;
}
.film {
    color:blue;
}

.default {
    color:rgb(200, 200, 200);
}

.list {
    padding:0 0 40px 0;
}

.project {
    font-size:16px;
    line-height:20px;
    display:flex;
    flex-wrap: wrap;
    border-top:rgb(200, 200, 200) 1px solid;
    text-align: left;
    padding:10px 0px 8px 0px;
    align-items: flex-start;
}

.project article {
    flex-basis:100%;
    font-size: 18px;
    line-height: 24px;
}

.project header {
    border:0px;
}

.project:last-child {
    border-bottom:rgb(200, 200, 200) 1px solid;
}

.project-year {
    font-variant-numeric: normal;
    width:15%;
    min-width:160px;
    padding:0 0 0 100px;
}

.project-star {
    width:22px;
}

.project-title,
.project-desc,
.project-venue {
    flex:1;
    padding:0 10px 0 0;
    word-wrap: break-word;
    overflow: hidden;
}

.project-url{
    text-align:right;
    padding:0 100px 0 0;
    margin-left: auto;
}

.project-venue:hover, .project-url:hover{
    border:none;
    color:blue;
}

.project-venue:hover + .project-url{
    border:none;
    color:blue;
}

.disable {
    opacity:0;
    pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
    .category:hover > .category-icon{
        -webkit-text-stroke: 1px black;
        text-stroke: 1px black;
    }
    
    .category:hover > .category-text{
        color:black;
    }

    .project:hover {
        background: white;
        cursor:pointer;
    }
}

@media only screen and (max-width: 840px) {
  nav {
    flex-wrap: wrap;
  }

  .name {
    width:100%;
  }

  .dash {
    display:none;
  }
  
  article figure {
    padding:40px 20px 0px 20px;
  }

  article p {
    padding:0 20px;
  }

  section p{
    padding:0 20px;
  }

  section p + p {
    padding:0 20px;
  }

  figure img + img {
    padding:10px 0 0 0;
  }

  figure video + video {
    padding:10px 0 0 0;
  }

  .list-nav {
    padding:20px 20px 20px 20px;
    justify-content: space-evenly;
  }

    .category-icon {
        font-size:80px;
        line-height:80px;
    }

  .project-year {
    padding:0 0 0 20px;
    width:10%;
    min-width:65px;
  }

  .project-venue {
    display:none;
  }

  .project-url{ 
    padding:0 20px 0 0;
    }
}