@charset "utf-8";

/*--------------------*/
/*フォント*/
/*--------------------*/

@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300&family=Zen+Old+Mincho:wght@400;700&display=swap');
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap");
input[type=submit] {
  -webkit-appearance: none;
  border-radius: 0;
}

.material-symbols-outlined {
    font-variation-settings:
    'FILL' 1,
    'wght' 100,
    'GRAD' 0,
    'opsz' 20
}

/*--------------------*/
/*色*/
/*--------------------*/

:root {
    --color__main: #F9F9F9;
    --color__sabu: #ededed;
    --color__sabu2: #6b6b6b;
    --color__text: #333333;
    --color__accent: #daf1f9;
    --color__accent2: #499292;
    --color__accent3: #3C5A68;
}

/*--------------------*/
/*ベタ打ち*/
/*--------------------*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    line-height: 1.75em;
}

html {
    font-size: 15px;
    font-family: 'Zen Old Mincho', serif;
    color: var(--color__text);
}

body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    top: 0;
    left: 0;
    font-size: 1rem;
    background-color: var(--color__main);
}

main, footer {
    width: 40rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Kiwi Maru', serif;
    line-height: 1em;
    margin: 0 0 0.5em;
}

h1 {
    font-size: 2rem;
}

h2 {
    font-size: 1.8rem;
}

h3 {
    font-size: 1.3rem;
}

h4 {
    font-size: 1.2rem;
}

h5 {
    font-size: 1rem;
}

h6 {
    font-size: 0.8rem;
}

small {
    font-size: 0.5rem;
}

a {
    color: var(--color__accent3);

    &:visited {
        color: var(--color__accent2);
    }

    &:hover {
        color: var(--color__text);
    }

}

img {
    vertical-align: middle;
}

ul, ol {
    list-style-position: inside;
    padding-left: 1em;
    text-indent: -1em;
}

audio {
    margin: 1rem 0;
}

strong {
    color: var(--color__main);
    line-height: 1.75rem;
    border: none;
    border-radius: 0.25rem;
    background-color: var(--color__accent3);
}

input[type=text] {
    border: solid 1px var(--color__sabu2);
    border-radius: 0.2rem;
    font-family: 'Zen Old Mincho', serif;
}

input[type=button], input[type=submit] {
    padding: 0.2rem 0.5rem;
    font-size: 0.6rem;
    color: var(--color__sabu2);
    border: solid 1px var(--color__sabu2);
    border-radius: 0.2rem;
    background-color: transparent;

    &:hover {
        background-color: transparent;
        color: var(--color__text);
        border: solid 1px var(--color__text);
        cursor: pointer;
    }
}

input[type="file"] {
    padding: 0.2rem 0.5rem;
    font-size: 0.6rem;
    color: var(--color__sabu2);
    border-radius: 0.2rem;
    background-color: transparent;

    &:hover {
        background-color: transparent;
        color: var(--color__text);
        border: solid 1px var(--color__text);
        cursor: pointer;
    }
}

hr {
    height: 0;
    padding: 0;
    border: 0;
    margin: 1rem 0;
    border-top: dashed 1px var(--color__sabu2);
    background-color: transparent;
}


/*--------------------*/
/*ヘッダー*/
/*--------------------*/

header {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0.5rem 1rem;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    font-family: 'Kiwi Maru', serif;
    text-align: center;
    background-color: var(--color__main);
    border-bottom: solid 1px var(--color__sabu);
    filter: drop-shadow(0 4px 8px var(--color__sabu));

    & * {
        line-height: 1em;
        margin: 0.2rem;
    }

    & h1 {
        margin: 0.5rem;
        font-size: 1.3rem;
        font-weight: normal;
    }

    & a {
        color: var(--color__text);
        text-decoration: none;

        &:visited {
            color: var(--color__text);
        }
    
        &:hover {
            color: var(--color__text);
            text-decoration: underline;
        }
    }

    & p {
        font-size: 0.8rem;

        &::before, &::after {
            content: "-";
        }
    }

}

/*--------------------*/
/*メイン*/
/*--------------------*/

/*簡易投稿エリア*/

.postarea form {
    position: relative;
    margin: 1rem 0;
    padding: 1rem;
    background-color: var(--color__sabu);
    border: solid 1px var(--color__sabu);
    border-radius: 0.5rem;
    
}

.tegalogpost {
    width: 100%;
    min-height: 5rem!important;
    padding: 0.5rem;
    font-family: 'Zen Old Mincho', serif;
    font-size: 1rem;
    color: var(--color__text);
    border: solid 1px var(--color__accent2);
    border-radius: 0.25rem;
    background-color: var(--color__main);

}

.line-control {
    margin-top: 0.5rem;
    color: var(--color__sabu2);
}

.line-control span {
    margin-right: 0.2rem;
}

input[type=submit].postbutton {
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    color: var(--color__accent2);
    border: solid 1px var(--color__accent2);
    border-radius: 1.2rem;
    background-color: transparent;

    &:hover {
        background-color: transparent;
        color: var(--color__text);
        border: solid 1px var(--color__text);
        cursor: pointer;
    }
}

.hashtagEasyInput {
    margin-right: 0.2rem;
}

.changelink {
    display: none;
}

.decoBtns input[type=button] {
    margin-right: 0.2rem;
}

.catChecks label {
    margin-right: 5px;
    font-size: 90%;
}

/*データセパレータ*/

.dateseparator {
    display: none;
}

/*記事*/

article.post  {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
    position: relative;
    margin: 1rem 0;
    padding: 1rem;
    background-color: var(--color__main);
    border: solid 1px var(--color__sabu);
    border-top: solid 1px white;
    border-left: solid 1px white;
    border-radius: 0.5rem;
    
    &::after {
        content: " ";
        display: block;
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        /*影設定*/
        background-color: var(--color__sabu);
        filter: blur(5px);
        transform: translateX(2px) translateY(4px) scale(1.01) rotate(-0.2deg);
        mix-blend-mode: multiply;
    }

    .header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-family: 'Kiwi Maru', serif;

        .userarea {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .usericon{
            width: 1.5rem;
            height: 1.5rem;
            border-radius: 50%;
            overflow: hidden;
        }

        .username {
            font-size: 0.8rem;
        }

        .fixed {
            display: none;
            align-items: center;
            font-size: 0.8rem;
            color: var(--color__sabu2);
        }

        .fixed span {
            display: block;
        }
    }

    .footer {
        display: flex;
        justify-content: right;
        align-items: center;
        gap: 0.5rem;
        font-family: 'Kiwi Maru', serif;

        .postdate {
            font-size: 0.8rem;
            color: var(--color__sabu2);
        }

        .categories {
            display: flex;
            align-items: center;
        }

        .categories .categorylink {
            display: block;
            margin-left: 0.5rem;
            text-decoration: none;
        }

        .categories .categorylink span {
            display: block;
            padding: 0.05rem 0.5rem;
            font-size: 0.6rem;
            color: var(--color__sabu2);
            border-radius: 1rem;
            border: 1px solid var(--color__sabu2);
        }
        
        .categories .categorylink span:hover {
            color: var(--color__text);
            border: 1px solid var(--color__text);
        }

        .catseparator {
            display: none;
        }

    }

}

/*固定投稿*/

article.logstatus-fixed  {

    .header {
        .fixed {
            display: flex;
        }

    }

}

/*鍵付き投稿*/

.passkeybox {
    display: flex;
    align-items: center;
    gap: 0.5rem;

    .passkeyguide, .passkeyinput, .submitcover {
        display: block;
        line-height: 0;
    }

    .passkeyinput {
        font-size: 1rem;
        max-width: 100%;
    }
}

/*タグ*/

.taglink {
    text-decoration: none;

    &:hover {
        text-decoration: underline;
    }
}

/*ページリスト*/

.pagenavi {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 1rem 1rem;
}

a.pagenumlink {
    width: 1.6rem;
    height: 1.6rem;
    text-align: center;
    font-size: 0.8rem;
    color: var(--color__sabu2);
    text-decoration: none;
    border: solid 1px var(--color__sabu2);
    border-radius: 0.2rem;

    &:hover {
        border: solid 1px var(--color__text);
    }
}

a.pagenumhere {
    color: var(--color__main);
    background-color: var(--color__sabu2);

    &:hover {
        color: var(--color__main);
        background-color: var(--color__text);
    }
}

/*検索*/

.search {

    & span.searchinputs {
        display: grid;
        grid-template: 1fr/3fr 1fr;
        gap: 1rem;
    }

    & input.queryinput {
        padding: 0.2rem 0.5rem;
    }

    & span.submitcover {
        position: relative;
    }

    & input.submitbutton {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
}

/*複合検索*/

.complexsearch {
    
    & details.searchbox {
        margin-top: 1rem;
    }

    & p.searchbox {
        display: grid;
        grid-template: 1fr/3fr 1fr;
        gap: 1rem;
        margin: 1rem 0;
    }

    & input.queryinput {
        padding: 0.2rem 0.5rem;
    }

    & input.submitbutton {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    & ul {
        list-style: none;
        font-size: 0.8rem;

        & li {
            display: flex;
            margin: 0.5rem 0;
        }

        .solabel {
            display: block;
            width: 5rem;
        }
    
        & select {
            display: block;
        }
    }

}

/*個別投稿ページ*/

.utilitylinks {
    padding: 1rem;
    background-color: var(--color__accent);
    border-radius: 0.5rem;

    & ul {
        list-style: none;
    }
}

/*--------------------*/
/*ナビゲーション*/
/*--------------------*/

nav {
    column-count: 2;

    & >div {
        margin-bottom: 1rem;
        padding: 1rem;
        break-inside: avoid;
        font-size: 0.8rem;
        background-color: var(--color__sabu);
        border-radius: 0.5rem;
    }

    & h2 {
        font-size: 1.3rem;
        font-weight: normal;
    }

    & ul {
        list-style: none;

        .num {
            display: none;
        }
    }
}

/*カレンダー*/

div.calendar {
    font-family: 'Kiwi Maru', serif;

    & table.calendar {
        margin: 0 auto;
        text-align: center;
    }

    & tbody {
        font-family: 'Zen Old Mincho', serif;
    }
}

div.calendar {
    & table.calendar {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 80%;
        text-align: center;
    }

    & table.calendar > * {
        width: 100%;
    }

    & caption {

        display: flex;
        justify-content: center;
        align-items: center;

        & span {
            display: block;
        }

    }

    & tbody, thead {
        & tr {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            width: 100%;
        }

        & th {
            display: block;
        }
    }
}

/*新着画像*/

.imagelist {

    .list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .imagelistitem {
        display: block;
        width: calc((100% - 1rem)/3);
        height: auto;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border-radius: 0.25rem;

        & a {
            display: block;
            width: 100%;
            height: 100%;
        }

        & img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
    }
}

/*ハッシュタグ*/
.hashtag {

    & ul.hashtaglist {
        display: flex;
        flex-wrap: wrap;
        column-gap: 0.5em;
        padding-left: 0;
        text-indent: 0;

        & li {
            display: block;
        }

    }

    .taglink {

        &::before {
            content: "#";
        }

    }
}

/*最近の投稿*/

.latestpostlist {

    padding-left: 0;
    text-indent: 0;

    & li {
        margin: 0.5rem 0;
    }

    & span {
        display: none;
    }
}

/*--------------------*/
/*フッター*/
/*--------------------*/

footer {
    display: flex;
    justify-content: center;
    align-items: center;
    vertical-align: middle;
    padding: 0 0 1rem;
    font-size: 0.8rem;
    font-family: 'Kiwi Maru', serif;

    & span {
        display: block;
    }

    .material-symbols-outlined {
        font-size: 1rem;

    }

    & a {
        text-decoration: none;
    }
}


/*--------------------*/
/*ページトップ遷移ボタン*/
/*--------------------*/

a.pagetop {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3rem;
    height: 3rem;
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    text-decoration: none;
    border: 1px solid var(--color__sabu);
    border-radius: 50%;
    background-color: var(--color__main);
    box-shadow: 0px 0px 4px var(--color__accent);
    filter: drop-shadow(0 4px 8px var(--color__sabu));

    & span {
        display: block;
    }
}


/*--------------------*/
/*汎用装飾*/
/*--------------------*/

/* B:太字(Bold) */
.decorationB {
    font-weight: bold;
}

/* D:削除(Delete) */
.decorationD {
    color: var(--color__sabu2);
    text-decoration: line-through var(--color__sabu2);
}

/* E:強調(Emphasis) */
.decorationE {
    background:linear-gradient(transparent 60%, var(--color__accent) 40%);
}

/* I:斜体(Italic) */
.decorationI {
    font-style: italic;
}

/* Q:引用(Quote) */
.decorationQ {
    margin: 1rem 0;
    padding: 1rem;
    border-left: solid 2px var(--color__sabu2);
}

.decorationQ::before,
.decorationQ::after {
    content: '';
}

.decorationQ + br {
    display: none;
}

/* S:小文字(Small) */
.decorationS {
    font-size: 0.8em;
}

/* T:極小文字(Tiny) */
.decorationT {
    font-size: 0.6em;
}

/* U:下線(Underline) */
.decorationU {
    text-decoration: underline var(--color__text);
}

/*続きを読む*/
.readmorebutton {
    display: block;
    width: 100%;
    margin: 1rem 0;
    padding: 0.2rem;
    border-radius: 1rem;
    text-align: center;
    font-size: 0.8rem;
    font-family: 'Kiwi Maru', serif;
    color: var(--color__sabu2);
    border: 1px solid var(--color__sabu2);
    text-decoration: none;
}

.readmoreclose {
    margin: 1rem 0 0;
}

/*リスト*/

.decorationL {
    & + br {
        display: none;
    }
}

dl.decorationL {
    & dd {
        padding-left: 2rem;
    }
}

/*--------------------*/
/* 埋め込み画像 */
/*--------------------*/

figure.nsfw {
    overflow: hidden; /* ぼかし領域がfigureのボックスからはみ出ないようにする */
}

.imagelink.nsfw {
    overflow: hidden; /* ぼかし領域がfigureのボックスからはみ出ないようにする */
}

img.nsfw {
    filter: blur(9px); /* ぼかす */
}

.imagelink {
    display: block;
    max-width: calc(50% - 1rem);
    height: auto;
    margin: 0.5rem 0;
    border-radius: 0.25rem;
    overflow: hidden;

    & img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    & +br {
        display: none;
    }
}

.embeddedpictbox {
    margin: 0.5rem 0;
    max-width: calc(50% - 1rem);
    height: auto;

    .imagelink  {
        max-width: 100%;
        margin: 0;
    }
    
    & figcaption{
        font-size: 0.8rem;
        color: var(--color__sabu2);
    }

    & +br {
        display: none;
    }
}

/*--------------------*/
/*レスポンシブ*/
/*--------------------*/

@media screen and (max-width: 40rem) {
    header, main, footer {
        width: 100vw;
    }
    
    main {
        padding: 0 1rem;
    }

    .imagelink {
        max-height: calc(100vw - 2rem);
    }

    .passkeybox {
        flex-wrap: wrap;
        row-gap: 1rem;
    }

    nav {
        column-count: 1;
    }
}

/*--------------------*/
/*自由装飾（画像複数カラム化）*/
/*--------------------*/

/*画像の二カラム化*/

.deco-2column {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 0.5rem;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: calc((100% - 0.5rem)/2);
        margin: 0;
        height: fit-content;
    }

    & .embeddedpictbox {
        max-width: calc((100% - 0.5rem)/2);
        margin: 0;
        height: fit-content;
        
        & .imagelink {
            max-width: 100%;
        }
    }
}

/*画像の三カラム化*/

.deco-3column {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 0.5rem;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: calc((100% - 1rem)/3);
        margin: 0;
        height: fit-content;
    }

    & .embeddedpictbox {
        max-width: calc((100% - 1rem)/3);
        margin: 0;
        height: fit-content;

        & .imagelink {
            max-width: 100%;
        }
    }
    
}

/*二カラムmasonry版（敷き詰めるようなデザイン）*/
/*異なる画像幅の画像を並べるときはこちらを推奨*/

.deco-2column_m {
    display: block;
    column-count: 2;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;
    }

    & .embeddedpictbox {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;

        .imagelink  {
            margin: 0;
        }
    }
}

/*三カラムmasonry版*/

.deco-3column_m {
    display: block;
    column-count: 3;
    margin-top: 0.5rem;

    & .imagelink {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;
    }

    & .embeddedpictbox {
        max-width: 100%;
        break-inside: avoid;
        margin: 0 0 0.5rem;

        .imagelink  {
            margin: 0;
        }
    }
}

/*--------------------*/
/*その他*/
/*--------------------*/

.url {
    /*ＵＲＬがボックスから食み出ないように設定。*/
    /*ＵＲＬがボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    word-break: break-all;
}

.embeddedmovie{
    /*動画がボックスから食み出ないように設定。*/
    /*動画がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    display: block;
    max-width:100%;
}

.embeddedmovie iframe{
    /*埋め込みコンテンツ（動画）がボックスから食み出ないように設定。*/
    /*埋め込みコンテンツ（動画）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    display: block;
    max-width:100%;
}

iframe.instagram-media {
    /*埋め込みコンテンツ（インスタ）がボックスから食み出ないように設定*/
    /*埋め込みコンテンツ（インスタ）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    max-width: 100% !important;
    min-width: initial !important;
}

.embeddedmusic iframe {
    /*埋め込みコンテンツ（音声）がボックスから食み出ないように設定。*/
    /*埋め込みコンテンツ（音声）がボックスから食み出ると、レスポンシブデザインが崩れることがある。*/
    max-width: 100% !important;
    min-width: initial !important;
}
