@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");

.material-symbols-outlined {
    font-variation-settings:
        'FILL' 1,
        'wght' 100,
        'GRAD' 0,
        'opsz' 20
}

/*--------------------*/
/*色*/
/*--------------------*/

:root {
    --color__main: #ffffff;
    --color__main2: #ffffff;
    --color__sabu: #d1dae4;
    --color__sabu2: #4b5e80;
    --color__text: #292933;
    --color__accent: #a6d4ff;
    --color__accent2: #5b88bb;
    --color__accent3: #226888;
}

/*--------------------*/
/*ベタ打ち*/
/*--------------------*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    line-height: 1.75em;
}

html {
    font-size: 18px;
    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: 3rem;
}

h2 {
    font-size: 2.2rem;
}

h3 {
    font-size: 1.7rem;
}

h4 {
    font-size: 1.4rem;
}

h5 {
    font-size: 1.2rem;
}

h6 {
    font-size: 1rem;
}

small {
    font-size: 0.8rem;
}

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);
}


/*--------------------*/
/*ヘッダー*/
/*--------------------*/

header {
    display: block;
    justify-content: center;
    align-items: center;
    padding: 0.5rem 1rem;
    width: 100%;
    font-family: 'Kiwi Maru', serif;
    text-align: center;
    background-color: var(--color__main);
    border-bottom: solid 1px 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: none;
    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__sabu2);
    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__accent3);
    border: solid 1px var(--color__accent3);
    border-radius: 1.2rem;
    background-color: transparent;

    &:hover {
        background-color: transparent;
        color: var(--color__text);
        border: solid 1px var(--color__text);
        cursor: pointer;
    }
}

.changelink {
    display: none;
}

.decoBtns input[type=button] {
    margin-right: 0.2rem;
}

.hashtagEasyInput {
    margin-right: 0.3rem;
}

.postarea form input[type="file"] {
    &:hover {
        background-color: transparent;
        color: var(--color__sabu2);
        border: none;
    }
}

.postarea form input[type="checkbox"] {
    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-radius: 0.5rem;

    .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.8rem;
            height: 1.8rem;
            border-radius: 50%;
            overflow: hidden;
        }

        .username {
            font-size: 0.9rem;
        }

        .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;

        a {
            font-size: 0.9rem;
        }

        .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__sabu);
    border-radius: 0.5rem;

    & ul {
        list-style: none;
        font-size: 0.8rem;
    }
}

/*--------------------*/
/*アーカイブ*/
/*--------------------*/
.datelimit-year {
    cursor: pointer;
}

.datelimit-year:hover {
    color: var(--color__sabu2);
}

/*--------------------*/
/*ナビゲーション*/
/*--------------------*/

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 {
            font-size: 0.6rem;
            color: var(--color__sabu2);
            margin-left: 0.2rem;
        }
    }
}

/*カレンダー*/

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;
        }
    }
}

/*--------------------*/
/*フッター*/
/*--------------------*/

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: 0.8rem;
    bottom: 0.8rem;
    text-decoration: none;
    border: 1px solid var(--color__sabu);
    border-radius: 50%;
    background-color: var(--color__main);

    & 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;
    }
}

/* ---------------------- */
/* ▼カード型リンクの装飾 */
/* ---------------------- */
.cardlink {
    display: inline-block;
    width: 100%;
    font-size: 0.9rem;
    text-decoration: none;
    vertical-align: middle;
}

/* ------------------------------------- */
/* リンクカードの装飾(サイズS/L共通部分) */
/* ※後述の「サイズS用の追記」や「サイズL用の追記」と合わせて、1つのカードデザインになります。 */
/* ------------------------------------- */
/* カード外枠 */
.cardlinkbox {
    border: 1px solid var(--color__sabu);
    border-radius: 0.25rem;
    background-color: var(--color__main);
    display: flex;
}

.cardlinkbox:hover {
    background-color: var(--color__sabu);
}

/* ▽リンクカード内の画像枠 (※読み込まれたog:imageは、この枠に《背景画像として》描画されます) */
.cardlinkimage {
    background-image: linear-gradient(-30deg, var(--color__accent2), var(--color__accent));
    /* プレースホルダ的な背景グラデーション(※og:imageの画像指定が読み込まれたら、この値は上書きされます) */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

/* ▽リンクカード内のテキスト枠 */
.cardlinktextbox {
    display: flex;
    flex-direction: column;
    padding: 0.5em 1em;
}

/* ▽リンクカードのテキスト枠内の3要素共通 */
.cardlinktitle,
.cardlinkdescription,
.cardlinkurl {
    /* ↓表示行数制限 */
    display: -webkit-box;
    /* -webkit-line-clampを使うために必要な記述1 ※A */
    -webkit-box-orient: vertical;
    /* -webkit-line-clampを使うために必要な記述2 ※A */
    overflow: hidden;
    /* 表示量を制限する場合に必須の記述 */
    /* ↓制限の仕様 */
    line-clamp: 1;
    /* 1行だけ見せる (将来的にはこれだけで実現可能かも) */
    -webkit-line-clamp: 1;
    /* 1行だけ見せる (今のブラウザにはこちらが必要で、そのためには上記「※A」も必要) */
    text-overflow: ellipsis;
    /* 省略記号(三点リーダー) */
}

/* リンクタイトル */
.cardlinktitle {
    padding-bottom: 0.2em;
}

/* リンク概要文 */
.cardlinkdescription {
    line-height: 1.3;
    font-size: 0.8rem;
    color: var(--color__text);
    line-clamp: 2;
    -webkit-line-clamp: 2;
}

/* リンクドメイン */
.cardlinkurl {
    display: none;
}

/* ----------------------------------- */
/* リンクカードの装飾(サイズS用の追記) */
/* 前述の「サイズS/L共通部分」と合わせて、1つのカードデザインになります。 */
/* ----------------------------------- */
.cardsize-S {
    flex-direction: row;
}

/* ▽リンクカード内の画像枠 */
.cardsize-S .cardlinkimage {
    min-width: 100px;
    min-height: 100px;
    border-radius: 0.25rem 0 0 0.25rem;
    flex-shrink: 0;
}

/* ▽リンクカード内のテキスト枠 */
.cardsize-S .cardlinktextbox {
    border-left: 1px solid var(--color__sabu);
    justify-content: center;
}

/* ▽リンクカードのテキスト枠内の3要素 */
.cardsize-S .cardlinktitle {
    order: 2;
}

/* タイトルは、2番目に表示 */
.cardsize-S .cardlinkdescription {
    order: 3;
}

/* 概要文　は、3番目に表示 */
.cardsize-S .cardlinkurl {
    order: 1;
}

/* ドメインは、1番上に表示 */

/* ----------------------------------- */
/* リンクカードの装飾(サイズL用の追記) */
/* 前述の「サイズS/L共通部分」と合わせて、1つのカードデザインになります。 */
/* ----------------------------------- */
.cardsize-L {
    flex-direction: column;
}

/* ▽リンクカード内の画像枠 */
.cardsize-L .cardlinkimage {
    aspect-ratio: 1.91 / 1;
    width: 100%;
    height: auto;
    border-radius: 0.25rem 0.25rem 0 0;
}

/* ▽リンクカード内のテキスト枠 */
.cardsize-L .cardlinktextbox {
    border-top: 1px solid var(--color__sabu);
}

/* ▽リンクカードのテキスト枠内の3要素 */
.cardsize-L .cardlinktitle {
    font-weight: bold;
}

.cardsize-L .cardlinkdescription {
    min-height: 2em;
}

.cardsize-L .cardlinkurl {
    border-top: 1px solid var(--color__sabu);
    margin-top: 0.5em;
    padding-top: 0.5em;
    font-size: 0.75rem;
}

/* ‥‥‥‥‥‥‥ */
/* ▼折り畳み空間 */
/* details要素＋summary要素で実現されており、JavaScriptが無効でも動作します。 */
/* ‥‥‥‥‥‥‥ */
/* ▽ボタンカバー */
.foldswitch {
    width: fit-content;
    /* 横幅を中身のサイズに制限 */
}

/* ▽ボタン */
.foldlabel {
    cursor: pointer;
}

/* ▽マウスが載った際の装飾(共通) */
.foldlabel:hover {
    color: var(--color__sabu2);
}

/* ▽折り畳まれている空間 */
.foldedarea {
    border-left: 3px solid var(--color__sabu);
    /* 左側の枠線 */
    margin: 0.25rem 0 0 0.125rem;
    padding: 0.25rem 0.5rem;
}

/*--------------------*/
/*レスポンシブ*/
/*--------------------*/

@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;
    }
}

/*--------------------*/
/*自由装飾*/
/*--------------------*/

/* 現在未使用！！ */

/*--------------------*/
/*その他*/
/*--------------------*/

.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;
}