:root {
  --green: #b7eb1b;
}

@font-face {
    font-family: 'jgs7';
    src: url('jgs7.woff2') format('woff2'),
        url('jgs7.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'jgs5';
    src: url('jgs5.woff2') format('woff2'),
        url('jgs5.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'jgs9';
    src: url('jgs9.woff2') format('woff2'),
        url('jgs9.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

html {
    color:#000;
    min-height: 100%;
}

body {
    padding:0;
    margin:0;
    font-family: 'jgs7';
    font-size:16px;
    line-height: 16px;
}

h2 {
    margin:0;
    font-size:1rem;
}

header {
    overflow: hidden;
    height: 400px;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: -1;
    color:var(--green);
}

.index header {
    height:800px;
}

.bg {
    position: fixed;
    top:0;
    left:0;
    background-image: url(../img/bg-3.png);
    background-color:#fff;
    background-size: cover;
    background-position: bottom center;
    background-repeat: no-repeat;
    width:100vw;
    height:100%;
    z-index:-1;
}

article {
    background: #fff;
    margin-top:400px;
}

.content {
    max-width:800px;
    margin: 0 auto;
    padding: 48px 0;
}

.align-right {
    text-align: right;
}

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

.ascii {
    white-space: pre;
}

.grid {
    display:grid;
    column-gap: 24px;
    grid-auto-flow: row;
}

.col-2 {
     grid-template-columns: 1fr 1fr;
}

.col-3 {
     grid-template-columns: 1fr 1fr 1fr;
}

.log {
    display: grid;
    grid-template-columns: 1fr 4fr;
}

.medium-padding-top {
    padding-top:24px;
}

.medium-padding-bottom {
    padding-bottom:24px;
}

.large-padding-top {
    padding-top:48px;
}

.large-padding-bottom {
    padding-bottom:48px;
}

.contents {
    padding:40px;
}

.gallery {
    columns: 4;
    padding-top:160px;
    padding-left:20px;
    padding-right:20px;
    gap:20px;
    z-index:100;
    position:relative;
}

.gallery .item {
    padding-bottom:20px;
}

img {
    max-width:100%;
    height:auto;
}

.write-up img {
    width:100%;
    margin-bottom:24px;
}

a {
    color:#000;
    background: #b7eb1b;
    text-decoration: none;
}

a.img-link {
    background:none;
}

a.img-link:hover img {
    -webkit-filter: drop-shadow(0px 0px 7px var(--green));
    filter: drop-shadow(0px 0px 7px var(--green));
}

small {
    padding-top:8px;
    line-height:1em;
    display:inline-block;
}

.row {
    display:flex;
    flex-direction: row;
}

.menu {
    margin-bottom:20px;
}

.menu ul {
    flex:1;
    list-style: none;
    margin:0;
    padding:0;
}

.menu li.indent {
    padding-left:20px;
}

.menu a {
    background:transparent;
    color:var(--green);
}

.menu a::before {
    content: " ";
}

a.active {
    font-weight: bold;
}

a.active::before {
    content:"> ";
}

.label {
    font-size:10px;
    line-height: 12px;
    border: 1px solid;
    padding: 2px 4px 0px 3px;
    border-radius: 8px;
    font-weight: bold;
    display: inline-block;
    margin-left:6px;
    min-width: 8px;
    text-align: center;
}

#logo {
    width:100px;
    position:fixed;
    right:40px;
    top:40px;
}

.credit {
    margin-bottom: 20px;
}

.project {
    display:inline-block;
    margin-bottom:16px;
}

.project img {
    mix-blend-mode: multiply;
}

.green {
    color:var(--green);
}

.hidden {
    display:none;
}

.sticker {
    z-index:100;
    width:250px;
}

.sticker.floating {
    position: absolute;
    bottom:100px;
    left:100px;
}

table {
    border-collapse: collapse;
    border:1px solid var(--green);
}

table td {
    border:1px solid var(--green);
    padding:8px;
}

@media (prefers-color-scheme: dark) { 
    article {
        background: #000;
    }
    .terminal {
        background: #000;
    }
    a {
        background: #b7eb1b;
    }
    .menu a {
        color:#b7eb1b;
    }
    .title-bar button {
      background-color: #000;
      border: 4px solid #fff;
    }
    .title-bar .title {
      background: #000;
    }
    .bg {
        background-color: #000;
    }
    .index .bg {
        opacity: 0.6;
    }
    html {
        background-color:#000;
        color:var(--green);
    }
}

@media screen and (max-width: 620px) {
    #logo {
        display:none;
    }
    .terminal {
        margin: 15px 15px 0 100px;
    }
    .col-2 {
        grid-template-columns: 1fr;
    }
    .gallery {
        columns:1;
    }
}