/* <system section="theme" selected="10257846132690957889"> */
@charset "UTF-8";
/*!
  Theme: Border
  Author: Askthewind’s diary
  Theme URI: https://blog.hatena.ne.jp/-/store/theme/10257846132690957889
  Responsive: yes
  Description: レスポンシブデザインに対応したはてなブログ用デザインテーマです。
  License: Released under the GPL.
*/

/* ==========================================================================
/* ! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
/* Vendor Prefix and IE other than text-size-adjust CSS that removed
/* Document
   ========================================================================== */
/**
 * 1. line-heightを1.15で設定。
 * 2. iOSで向きが変わってもフォントサイズが調整されないようにする。
 */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100% /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * bodyのマージンを取り除く。
 */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0
}

/**
/* Chrome、Firefox、Safariで、sectionとarticleコンテキスト内のh1要素の
/* フォントサイズとマージンを修正する。
 */
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0
}

/* Grouping content
   ========================================================================== */
/**
 * 1. preのmonospaceのフォントサイズがが縮小されるのを正しい表示に修正する。
 * 2. preのフォントサイズを1emで調整する。
 */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * Chrome、Edge、Opera、Safariでtext-decorationを正しい表示に修正する。
 */
/**
 * Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */
abbr[title] {
  text-decoration: underline; 
  text-decoration: underline dotted 
}

/**
 * Chrome、Edge、Safariでフォントの太さを調整する。
 */
/**
 * Add the correct font weight in Chrome, Edge,and Safari.
 */
b,
strong {
  font-weight: bolder
}

/**
 * 1. code,kbd,sampのmonospaceのフォントサイズがが縮小されるのを正しい表示に修正する。
 * 2. code,kbd,sampのフォントサイズを1emで調整する。
 */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em /* 2 */
}

/**
 * smallのフォントサイズを80%で調整する。
 */
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%
}

/**
 * sub,supがline-heightに影響を与えないようにする。
 * 
 */
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}
sub {
  bottom: -0.25em
}
sup {
  top: -0.5em
}

/* Forms
   ========================================================================== */
/**
 * button,input,optgroup,select,textareaのフォントスタイルを設定。
 */
/**
 * Change the font styles in all browsers.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; 
  font-size: 100%; 
  line-height: 1.15;
}

/**
 * 開発者がfieldsetをゼロにしたときの挙動をpadding: 0で制御する。
 */
/**
 * Remove the padding so developers are not caught out when they zero out
 * `fieldset` elements in all browsers.
 */
legend {
  padding: 0
}

/**
 * Chrome、Firefox、Opera用にprogressをvertical-align: baselineで設定。
 */
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline
}

/* Interactive
   ========================================================================== */
/**
 * summaryをdisplay: list-itemで設定。
 */
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item
}

/* End normalize.css v8.0.1
   ========================================================================== */

/* HTML Structure 外枠行順 */
/* @container > container-inner >
====================================== */

/* blog-title */
/* top-editarea */
/* top-box */
/* content > content-inner( 2カラム wrapper - box2 ) */
/* bottom-editarea */

/* containerと同じ外枠 */
/* footer > footer-inner( address - p ) */

/* CSS Document */
/* @root
====================================== */

:root {
    --clamp-12px-14px: clamp(.75rem, .705rem + .23vw, .875rem);
    --clamp-12px-15px: clamp(.75rem, .682rem + .34vw, .938rem)
}

/* @*,html,body
====================================== */

*,*:before,*:after {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    background-color: hsl(0 0% 100%);
    color: hsl(0 0% 0%);
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue",
                 Helvetica, "Inter", Roboto, Arial, "Noto Sans JP", 
                 "Hiragino Sans", Meiryo, "Nimbus Sans L", 
                 "Liberation Sans", "DejaVu Sans", ui-sans-serif, 
                 sans-serif, "apple color emoji", "segoe ui emoji", 
                 "noto color emoji";
    font-feature-settings: "palt";
    font-size: 1rem;
    line-height: 1.6
}

/* @selection
====================================== */

::selection {
    background-color: hsl(0 0% 0%);
    color: hsl(0 0% 100%)
}

/* @img a h*
====================================== */

img {
    vertical-align: baseline
}

a {
    color: hsl(0 0% 0%);
    text-decoration: none
}

a:hover {
    color: hsl(0 0% 0% / .6);
    transition: all .3s
}

h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: hsl(0 0% 0%);
    line-height: 1.3
}

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
    color: hsl(0 0% 0% / .6);
    transition: all .6s
}

/* @strong em
====================================== */

/* 見たまま編集 太字 */

strong {
    background: linear-gradient(transparent 70%, hsl(25 100% 50% / .5) 70%)
}

/* 見たまま編集 斜体 */

em {
    background: linear-gradient(transparent 60%, hsl(0 100% 50% / .5) 60%)
}

/* @canvas,svg,select,textarea
====================================== */

canvas,svg,select,textarea {
    max-width: 100%
}

svg {
    fill: currentColor
}

/* @blogicon-*
====================================== */

[class*=blogicon-] {
    fill: currentColor;
    line-height: 1;
    text-rendering: auto
}

/* ヘッダー */
/* ブログタイトル ブログ説明文 */
/* @blog-title
====================================== */

#blog-title {
    margin: 2em 0;
    padding: 20px;
    text-align: center;
    width: 90vw
}

@media (min-width: 768px) {
    #blog-title {
        margin: 3em 0
    }
}

@media (min-width: 992px) {
    #blog-title {
        max-width: 100%
    }
}

/* @title,blog-description
====================================== */

#title {
    margin: 0;
    font-size: 1.5rem
}

@media (min-width: 992px) {
    #title {
        font-size: 1.7rem
    }
}

#title a,#title a:hover{
    color: hsl(0 0% 27%)
}

/* @blog-description
====================================== */

#blog-description {
    font-weight: normal;
    font-size: .8rem;
    margin: 1em 0 0
}

@media (max-width: 767px) {
    #blog-description {
        display: none
    }
}

/* @header-image-enable
====================================== */

/* ヘッダ画像を設定したとき */
/* 画像とテキストを表示 */
/* 画像だけ表示  */

.header-image-enable #blog-title,
.header-image-only #blog-title {
    margin: 0 auto 2em;
    padding: 0
}

.header-image-enable #blog-title #blog-title-inner, 
.header-image-only #blog-title #blog-title-inner {
    background-size: cover;
    height: 20vw!important;
    max-height: 200px;
    display: flex;
    align-items: center
}

.header-image-enable #blog-title-content, 
.header-image-only #blog-title-content {
    margin: 0 .625em
}

@media (min-width: 992px) {
    .header-image-enable #blog-title-content,
    .header-image-only #blog-title-content {
        padding: 0 3.5em
    }
}

/* レイアウト 2カラム */
/* @container,footer
====================================== */

/* 全体の外枠 */

#container,
#footer {
    background-color: hsl(0 0% 100%);
    margin: 0 auto;
    width: 100%
}

@media (min-width: 992px) {
    #container,#footer {
        background-color: transparent;
        max-width: 1200px
    }
}

#container {
    overflow-wrap: break-word
}

/* @content
====================================== */

#content {
    margin: 0 auto;
    width: 90vw
}

@media(min-width: 992px) {
    #content {
        max-width: 100%
    }
}

/* @content-inner
====================================== */

#content-inner {
    display: grid;
    gap: 56px;
    grid-template-columns: minmax(0, 1fr)
}

@media(min-width: 992px) {
    #content-inner {
        grid-template-columns: minmax(0, 1fr) 302px
    }
}

/* @wrapper,box2,#box1
====================================== */

#wrapper,#box2 {
    padding: 20px 0
}

@media (min-width: 768px) {
    #wrapper,#box2 {
        padding: 24px 0
    }
}

@media (min-width: 992px) {
    #wrapper,#box2 {
        padding: 32px 0
    }
}

#box2 {
    overflow-wrap: anywhere
}

#box1 {
    display: none
}

/* @box2-inner
====================================== */

@media(min-width: 576px) and (max-width: 991px) {
    #box2-inner {
        display: grid;
        gap: 40px;
        grid-template-columns: 1fr 1fr
    }
}

/* ブログタイトル ブログ説明文下 */
/* content枠最下部 */
/* @top-editarea,bottom-editarea
====================================== */

#top-editarea,#bottom-editarea {
    width: 90vw
}

@media (min-width: 992px) {
    #top-editarea,#bottom-editarea {
        max-width: 100%;
        padding: 0 56px
    }
}

#top-editarea {
    margin: 0 auto 1em
}

#bottom-editarea {
    margin: 0 auto
}

/* ブログタイトル ブログ説明文下 */
/* @top-box
====================================== */

#top-box {
    border-bottom: 4px dotted hsl(0, 0%, 87%);
    margin: 0 auto 2em;
    padding: 30px 0 0;
    width: 90vw
}

@media (min-width: 992px) {
    #top-box {
        max-width: 100%;
        padding: 30px 56px 0
    }
}

@media(max-width: 767px) {
    #top-box {
        display: none
    }
}

/* @breadcrumb
====================================== */

.breadcrumb {
    font-size: .9rem;
    line-height: 1
}

.breadcrumb-gt:nth-last-of-type(2),
.breadcrumb-child:last-of-type {
    display: none
}

/* ポスト メインカラム */
/* @entry
====================================== */

.entry {
    background-color: hsl(0 0% 100%);
    border-radius: .5em;
    margin-bottom: 4em;
    position: relative
}

@media (min-width: 992px) {
    .entry {
        border: 1px solid hsl(0 0% 95%);
        box-shadow: 0 0 .0625em hsl(0 0% 0% / .1);
        padding: 32px 56px
    }
}

/* @entry-header
====================================== */

.entry-header {
    border-bottom: 1px solid hsl(0 0% 99%);
    margin-bottom: 2em;
    padding-bottom: 1em;
    position: relative
}

/* @date date-last-updated
====================================== */

.date {
    color: hsl(0 0% 40%);
    font-size: .9rem;
    margin-bottom: .5em
}

.date a,
.date a:hover {
    color: hsl(0 0% 40%)
}

.page-archive .date .hyphen,
.page-index .date .hyphen,
.page-entry .date .hyphen { 
    display: none
}

.page-archive .date .date-year::after,
.page-archive .date .date-month::after,
.page-index .date .date-year::after, 
.page-index .date .date-month::after { 
    content: "."
}

.page-entry .date .date-year::after {
    content: "年"
} 

.page-entry .date .date-month::after { 
    content: "月"
}

.page-entry .date .date-day::after { 
    content: "日"
}

.page-entry .date.entry-date.first {
    display: flex
}

.page-entry .date.entry-date.first a {
    order: 2
}

.page-entry .date.entry-date.first a::before {
    content: "投稿日";
    font-size: .875rem;
    font-weight: 500;
    vertical-align: baseline;
}

.page-entry .date.entry-date.first .date-last-updated {
    margin: 0 .6em 0 0;
    order: 1
}

.page-entry .date.entry-date.first .date-last-updated::before {
    content: "最終更新日";
    font-size: .875rem;
    font-weight: 500;
    vertical-align: baseline;
}

.date-last-updated .blogicon {
    display: none
}

/* @entry-title
====================================== */

.entry-title {
    font-size: 1.2rem;
    line-height: 1.4;
    margin: 0 0 .3em;
    word-break: break-all
}

@media (min-width: 992px) {
    .entry-title {
        font-size: 1.3rem
    }
}

/* @categories
====================================== */

.categories {
    font-size: .9rem;
    margin: .5em 0
}

.categories a {
    margin-right: .5em
}

/* @entry-header-menu
====================================== */

/* 編集ボタン */

.entry-header-menu {
    position: absolute;
    top: 0;
    right: 0
}

.entry-header-menu a {
    background-color: hsl(0 0% 0% / .8);
    border-radius: 4px;
    color: hsl(0 0% 100%);
    cursor: pointer;
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .025em;
    line-height: 1.4;
    overflow: hidden;
    padding: .375em .5em;
    text-align: center;
    transition: all .2s
}

.entry-header-menu a:hover {
    background-color: hsl(0 0% 0% / .9);
}

/* @entry-content img,video
====================================== */

.entry-content img {
    border: 1px solid hsl(0 0% 82%);
    box-shadow: 0 6px 6px -6px hsl(0 0% 80%)
}

.entry-content video {
    height: auto;
    max-width: 100%
}

/* @entry-content h
====================================== */

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
    border-bottom: 1px solid hsl(0 0% 0% / .13);
    line-height: 1.4;
    padding-bottom: .25em;
    margin: 2.5em 0 1em
}

.entry-content h1 {
    font-size: 1.5rem;
    margin: 4em 0 1em
}

.entry-content h2 {
    font-size: 1.4rem;
    margin: 3.5em 0 1em
}

/* 見たまま編集 大見出し */

.entry-content h3 {
    font-size: 1.3rem
}

/* 見たまま編集 中見出し */

.entry-content h4 {
    font-size: 1.2rem
}

/* 見たまま編集 小見出し */

.entry-content h5 {
    font-size: 1.2rem
}

.entry-content h6 {
    font-size: 1.1rem
}

/* @entry-content p a
====================================== */

.entry-content {
    line-height: 1.7
}

.entry-content p {
    line-height: 1.8
}

@media (min-width: 768px) {
    .entry-content {
        line-height: 1.8
    }
    .entry-content p {
        line-height: 1.9
    }
}

.entry-content a {
    overflow-wrap: anywhere
}

/* @entry-content table-of-contents
====================================== */

/* 見たまま編集 目次 */

.entry-content .table-of-contents {
    background-color: hsl(0 0% 98%);
    border-radius: 8px;
    font-size: var(--clamp-12px-15px);
    list-style: none;
    margin: 2em 0;
    padding: 4em 1.5em 1.5em;
    position: relative
}

.entry-content .table-of-contents::before {
    color: hsl(0 0% 13%);
    content: "Contents";
    font-size: .975rem;
    font-weight: 900;
    position: absolute;
    top: 18px
}

.entry-content .table-of-contents::after {
    color: hsl(0 0% 13%);
    font-size: .975rem;
    font-weight: 900;
    content: "目次";
    position: absolute;
    top: 18px;
    right: 24px
}

.entry-content .table-of-contents li+li {
    margin-top: .5em
}

.entry-content .table-of-contents li>ul {
    list-style: none;
    margin-top: .5em;
    margin-left: 0
}

.page-entry .entry-content .table-of-contents a {
    background-color: hsl(0 0% 0% / 0);
    border-radius: 4px;
    color: hsl(0 0% 13%);
    display: block;
    line-height: 1.5;
    padding: .25em .5em
}

.page-entry .entry-content .table-of-contents a:hover {
    background-color: hsl(0 0% 92% / .9)
}

/* @entry-content blockquote
====================================== */

/* 見たまま編集 引用 */

.entry-content blockquote { 
    background: linear-gradient(to bottom, 
        hsl(0 0% 100% / .1) 0%, hsl(0 0% 97% / .1) 100%);
    border: 1px solid hsl(0 0% 76%);
    border-radius: 5px;
    box-shadow: 0 4px 0 0 hsl(0 0% 95%);
    margin: 0 0 1.5625em;
    padding: 1.6875em 1.875em;
    position: relative;
}

.entry-content blockquote::before,
.entry-content blockquote::after { 
    color: hsl(193 61% 60%);
    font-style: italic;
    font-size: 1.875rem;
    font-weight: 400;
    position: absolute
}

.entry-content blockquote::before { 
    content: "\201c"; 
    line-height: 40px;
    top: 5px; 
    left: 10px
}

.entry-content blockquote::after { 
    content: "\201d";
    line-height: 60px;
    height: 30px;
    bottom: 7px;
    right: -2px;
    text-align: left;
    width: 30px
}

.entry-content blockquote:hover::after { 
    color: transparent
}

.entry-content blockquote p:first-child {
    margin-top: 0
}

.entry-content blockquote p:last-child {
    margin-bottom: 0
}

.entry-content blockquote cite {
    border-top: 1px dotted hsl(0,0%,67%);
    display: block;
    font-size: 85%;
    font-style: italic;
    line-height: 1.3;
    margin-top: .5em;
    padding-top: .5em;
    text-align: right
}

/* @entry-content ul ol dd
====================================== */

/* 見たまま編集 箇条書き 番号付きリスト */

.entry-content ul,
.entry-content ol,
.entry-content dd {
    margin: 0 0 1em 1.5em;
    padding: 0
}

.entry-content ul li ul, .entry-content ul li ol,
.entry-content ol li ul,
.entry-content ol li ol,
.entry-content dd li ul,
.entry-content dd li ol {
    margin-bottom: 0
}

/* @entry-content table
====================================== */

/* はてな表記モードで表を使う場合 */

.entry-content table {
    border-bottom: 1em;
    border-collapse: collapse;
    border-spacing: 0;
    display: block;
    font-size: .8rem;
    margin-bottom: 1em;
    overflow: auto;
    width: 100%
}

@media (min-width: 992px) {
    .entry-content table {
        font-size: .9rem
    }
}

.entry-content table th,
.entry-content table td {
    border: 1px solid hsl(0 0% 87%);
    padding: .3125em .625em
}

.entry-content table th {
    background-color: hsl(0 0% 96%)
}

/* @entry-content pre code
====================================== */

/* コードブロック */

.entry-content pre, 
.entry-content code,
.entry-content pre > code,
.entry-content pre[class*=lang] {
    font-family: "Fira Code", ui-monospace, Consolas,
                 SFMono-Regular, "SF Mono", Menlo, 
                 "Ubuntu Mono", "Liberation Mono", monospace
}

.entry-content pre, 
.entry-content code {
    background-color: hsl(0 0% 100% / .9);
    border: 1px solid;
    border-radius: .375em;
    font-size: 1em;
    line-height: 1.5
}

.entry-content pre {
    padding: 1.875em .9375em;
    position: relative
}

.entry-content code {
    border-color: hsl(0 0% 87% / .9);
    padding: .0625em .25em
}

.entry-content pre.code {
    white-space: pre
}

.entry-content pre.code::before {
    background-color: hsl(180 8% 17%);
    color: hsl(0 0% 100%);
    content: "Plain text";
    padding: 0 .8em;
    position: absolute;
    top: 0;
    left: 0
}

.entry-content pre.code[class*=lang]::before {
    content: attr(data-lang)
}

/* OSのテーマに自動追従（ライト） */
@media (prefers-color-scheme: light) {
    
    .entry-content pre,
    .entry-content pre > code {
        border-color: hsl(220 13% 91%);
        color: hsl(210 15% 18%)
    }
    
    /* シンタックス・ハイライト */
    
    /* コメント (落ち着いたグレー) */   
    .synComment {
        color: hsl(210 7% 50%);
        font-style: italic
    } 
    
    /* 数字や真偽値などの定数 (落ち着いた赤) */
    .synConstant { 
        color: hsl(350 65% 50%)
    } 

    /* 識別子 (変数名、関数名など) (深緑) */
    .synIdentifier { 
        color: hsl(155 45% 35%)
    } 
    
    /* プリプロセッサ (#include など)(青) */
    .synPreProc { 
        color: hsl(210 100% 35%)
    } 
    
    /* 特殊文字や記号 ({}, [], () など) (濃いグレー) */
    .synSpecial { 
        color: hsl(210 15% 20%)
    } 
    
    /* ステートメント (if, for, return など) (オレンジ) */
    .synStatement { 
        color: hsl(28 70% 45%);
        font-weight: 700
    } 

    /* 型 (int, string, number, class など) (紫) */
    .synType { 
        color: hsl(280 45% 45%)
    }  
}

/* OSのテーマに自動追従（ダーク） */
@media (prefers-color-scheme: dark) {
    
    .entry-content pre, 
    .entry-content pre > code {
        background-color: hsl(220 13% 18%);
        border-color: hsl(0 0% 100% / .06);
        color: hsl(220 14% 71%)
    }
    
    /* シンタックス・ハイライト */
    
    /* コメント (灰色がかったブルー) */   
    .synComment {
        color: hsl(210 10% 55%);
        font-style: italic
    } 
    
    /* 数字や真偽値などの定数 (落ち着いた赤) */
    .synConstant { 
        color: hsl(350 65% 65%)
    } 

    /* 識別子 (変数名、関数名など) (グリーン) */
    .synIdentifier { 
        color: hsl(150 45% 55%)
    } 
    
    /* プリプロセッサ (#include など)(青) */
    .synPreProc { 
        color: hsl(210 100% 70%)
    } 
    
    /* 特殊文字や記号 ({}, [], () など) (やや明るいグレー) */
    .synSpecial { 
        color: hsl(210 15% 85%)
    } 
    
    /* ステートメント (if, for, return など) (オレンジ) */
    .synStatement { 
        color: hsl(28 80% 60%);
        font-weight: 700
    } 

    /* 型 (int, string, number, class など) (紫) */
    .synType { 
        color: hsl(280 60% 65%)
    }  
}

/* @entry-content hr
====================================== */

/* HTML編集で<hr />を使う場合 */

.entry-content hr {
    border: 0;
    border-top: 8px dotted hsl(0 0% 50% / .75);
    margin: 4.375em auto;
    width: 50%
}

/* @a.entry-see-more
====================================== */

/* 見たまま編集 続きを読む */

a.entry-see-more {
    color: hsl(0 0% 0%);
    display: inline-block;
    font-size: 0;
    font-weight: 900
}

a.entry-see-more::before {
    content: "Read more";
    border-bottom: 3px solid hsl(0 0% 0%);
    font-size: 1rem
}

/* @footnote footnote-number
====================================== */

/* 見たまま編集 脚注 */

.page-index .footnote { 
    display: none
}

.footnote-number {
    scroll-margin-top: 3.5em
}

/* @entry-content hatena-asin-detail
====================================== */

.hatena-asin-detail {
    background-color: hsl(213 28% 19% / .1);
    border: 3px solid hsl(213 28% 19%);
    border-radius: 4px;
    padding: .8em .6em;
    position: relative
}

@media (min-width: 768px) {
    .hatena-asin-detail {
        padding: .8em 1.5em .8em .6em
    }
}

.hatena-asin-detail a {
    color: hsl(36 100% 50%)
    
}

@media (min-width: 992px) {
    .hatena-asin-detail::before {
        background-color: hsl(213 28% 19%);
        color: hsl(36 100% 50%);
        content: "\293b";
        font-size: 1.8rem;
        font-weight: 900;
        height: 1.5rem;
        line-height: 2rem;
        position: absolute;
        top: -2px;
        right: -2px;
        text-align: center;
        width: 1.5rem;
        z-index: 1
    }
    .hatena-asin-detail::after {
        color: hsl(0 0% 100%);
        content: "a";
        font-family: Arial, "Liberation Sans", sans-serif;
        font-size: 1.2rem;
        font-weight: 900;
        height: 1.5rem;
        line-height: 1rem;
        position: absolute;
        top: -2px;
        right: -2px;
        text-align:center;
        width: 1.5rem;
        z-index: 2
    }
}

.hatena-asin-detail.hatena-rakuten-detail {
    background-color: hsl(0 100% 37% / .1);
    border: 3px solid hsl(0 100% 37%)
}

.hatena-asin-detail.hatena-rakuten-detail a {
    color: hsl(0 100% 37%)
}

@media (min-width: 992px) {
    .hatena-asin-detail.hatena-rakuten-detail::before {
        background-color: hsl(0 100% 37%);
        border-radius: 50%;
        color: hsl(0 0% 100%);
        content: "R";
        font-family: Arial, Helvetica, "Liberation Sans", sans-serif;
        font-size: .875rem;
        font-weight: 600;
        line-height: 1.5rem;
        position: absolute;
        top: 3px;
        right: 4px;
        text-align: center
    }
    .hatena-asin-detail.hatena-rakuten-detail::after {
        content: none
    }
}

/* ポスト下 */
/* @entry-footer social-buttons
====================================== */

.entry-footer .social-buttons {
    margin-bottom: 1em
}

.page-index .social-buttons { 
    display: none 
}

/* @entry-footer-section
====================================== */

.entry-footer-section {
    color: hsl(0 0% 60%);
    font-size: .9rem;
}

.entry-footer-section a {
    color: hsl(0 0% 60%)
}

.page-index .entry-footer-section {
    display: none
}

/*@entry-footer entry-footer-time
====================================== */

.entry-footer .entry-footer-time .updated  {
    display: none
}

/*@entry-footer vcard
====================================== */

.entry-footer .author.vcard::before {
    content: "Author:\00a0"
}

/*@entry-tags-wrapper
====================================== */

.page-index .entry-tags-wrapper {
    display: none
}

/* @hatena-star-container
====================================== */

.entry-footer .hatena-star-container {
    background-color: hsl(0 0% 96%);
    border-radius: 8px;
    font-size: .75rem;
    margin: 1.5em 0;
    padding: 1em
}

@media (min-width: 768px) {
    .entry-footer .hatena-star-container {
        font-size: 1rem;
    }
}

.entry-footer .hatena-star-container::before {
    content: "記事が面白かったら★をクリック！（連打できます）";
    display: block;
    font-size: .9375rem;
    font-weight: 700;
    margin-bottom: .5em
}

.page-index .entry-footer .hatena-star-container {
    display: none
}

/* @ad-online-afc
====================================== */

.ad-online-afc .yads_ad .yads_ad_title,
.touch-afc-block .google_afc_blocklink .visible_url a {
    overflow-wrap: anywhere
}

/* ポスト下 関連記事 */
/* @main entry-footer-modules
====================================== */

#main .entry-footer-modules .hatena-urllist {
    margin: 2em 0;
    padding: 0;
    display: grid;
    gap: 1em;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    grid-template-rows: auto /* 縦スクロールバー対策 */
}

#main .entry-footer-modules .hatena-urllist>li {
    border: 1px solid hsl(0 0% 87%);
    border-radius: 8px;
    box-shadow: inset 0 0 0 1px hsl(196 19% 89%);
    list-style: none;
    padding: 0
}

#main .entry-footer-modules .hatena-urllist .urllist-item-inner {
    position: relative;
    display: grid;
    row-gap: .5em;
    grid-template-columns: auto;
    grid-template-rows: auto;
    grid-template-areas: "image-link image-link" "categories categories" "title-link title-link" "entry-body entry-body" "date-link bookmark-widget-counter"
}

#main .entry-footer-modules .hatena-urllist .urllist-image-link {
    grid-area: image-link;
    display: block;
    overflow: hidden
}

#main .entry-footer-modules .hatena-urllist .urllist-image {
    aspect-ratio: 16 / 9;
    background-color: hsl(207 14% 85%);
    border-radius: 8px;
    float: none;
    height: auto;
    margin: 0;
    max-width: 100%;
    object-fit: cover;
    width: 500px
}

#main .entry-footer-modules .hatena-urllist .urllist-categories {
    grid-area: categories;
    line-height: 1
}

#main .entry-footer-modules .hatena-urllist .urllist-category-link {
    font-size: .75rem
}

#main .entry-footer-modules .hatena-urllist .urllist-category-link:not(:first-child) {
    display:none
}

#main .entry-footer-modules .hatena-urllist .urllist-date-link {
    font-size: .75rem;
    grid-area: date-link;
    line-height: 1;
    padding: .0625em 1em 1.125em
}

#main .entry-footer-modules .hatena-urllist .urllist-date-link a {
    color: hsl(0 0% 40%)
}

#main .entry-footer-modules .hatena-urllist .urllist-title-link {
    color: hsl(0 0% 27%);
    display: block;
    font-size: .938rem;
    font-weight: 700;
    grid-area: title-link;
    line-height: 1.4;
    padding: .0625em 1em;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical
}

#main .entry-footer-modules .hatena-urllist .urllist-entry-body {
    color: hsl(0 0% 40%);
    font-size: .75rem;
    grid-area: entry-body;
    margin: 0;
    padding: .0625em 1em;
    max-height: 4.5em;
    overflow: hidden;
    text-align: left;
    word-break: break-all;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical
}

#main .entry-footer-modules .hatena-urllist .bookmark-widget-counter {
    grid-area: bookmark-widget-counter;
    text-align: right
}

/* コメント欄 */
/* @comment-box
====================================== */

.comment-box {
    margin: 1em 0
}

.page-index .comment-box {
    display: none
}

/* @comment
====================================== */

.comment-box .comment {
    line-height: 1.7;
    list-style: none;
    font-size: .875rem;
    margin: 0 0 .9375em 0;
    padding: 0
}

@media (min-width: 768px) {
    .comment-box .comment {
        font-size: .9375rem
    }
}

/* @entry-comment
====================================== */

.comment-box .entry-comment {
    background-color: hsl(0 0% 96%); 
    border: 1px solid hsl(0 0% 89%); 
    border-radius: 4px;
    box-shadow: 10px 10px 0 0 hsl(0 0% 0% / .4);
    margin-bottom: 1.25em; 
    min-height: 1.25em; 
    padding: .625em 1.25em .625em 3.75em;
    position: relative
}

/* @read-more-comments
====================================== */

.comment-box .read-more-comments {
    padding: .625em 0;
}

/* @hatena-id-icon
====================================== */

.comment-box .hatena-id-icon {
    border-radius: 3px;
    height: 50px !important;
    position: absolute;
    top: 10px;
    left: 0;
    width: 50px !important
}

/* @comment-user-name
====================================== */

.comment-user-name {
    font-weight: 700;
    margin: 0 0 .4em 0
}

/* @comment-content p
====================================== */

.comment-content {
    color: hsl(0 0% 27%);
    font-size: .875rem;
    margin: 0 0 .4em 0
}

.comment-content p {
    margin: 0 0 .6em 0
}

/* @comment-metadata
====================================== */

.comment-metadata {
    color: hsl(0 0% 60%);
    font-size: .75rem;
    margin: 0
}

.comment-metadata a {
    color: hsl(0 0% 60%)
}

/* @leave-comment-title
====================================== */

.leave-comment-title {
    border: 1px solid hsl(0 0% 87%);
    font-size: .875rem;
    padding: .6em 1em
}

/* ページ送りナビ */
/* @pager 
====================================== */

.pager {
    margin: 2em 0;
    display: flex;
    flex-direction: column;
    gap: 8px
}

@media (min-width: 768px) {
    .pager {
        flex-direction: row
    }
}

.pager>* {
    flex: 1
}

.pager .pager-next a,.pager .pager-prev a {
    background-color: hsl(0 0% 99%);
    border: 1px solid hsl(0 0% 80%);
    border-radius: 4px;
    color: hsl(0 0% 50%);
    cursor: pointer;
    display: block;
    font-size: .975rem;
    font-weight: 500;
    line-height: 1.4;
    padding: .75em 1.25em;
    text-align: center;
    text-overflow: ellipsis;
    transition: all .25s;
    overflow: hidden;
    white-space: nowrap
}

@media(min-width: 768px) {
    .pager .pager-next a,.pager .pager-prev a {
        font-size: .975rem;
        padding: 1em 1.25em
    }
}

.pager .pager-next a:hover,.pager .pager-prev a:hover {
    background-color: hsl(0 0% 96%);
    border: 1px solid hsl(0 0% 89%);
    color: hsl(0 0% 48%)
}

/* サイドカラム */
/* @hatena-module
====================================== */

.hatena-module {
    font-size: .75rem;
    margin-bottom: 3em
}

/* @hatena-module-title
====================================== */

.hatena-module-title {
    border-top: 3px solid hsl(0 0% 0%);
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1.875em;
    padding-top: 1.875em
}

.hatena-module-title a {
    color: hsl(0 0% 0%);
    text-decoration: none
}

.hatena-module-title a:hover {
    color: hsl(0 0% 0%)
}

.hatena-module-profile .hatena-module-title {
    margin-bottom: .5em
}

.hatena-module-search-box .hatena-module-title {
    display: none
}

/* @hatena-module-profile
====================================== */

.hatena-module-profile .profile-icon {
    float: left;
    margin: 0 .625em .625em 0
}

.hatena-module-profile .id {
    display: block;
    font-weight: 700;
    margin-bottom: .5em;
}

.hatena-module-profile .profile-description p {
    margin-top: 0
}

/* @hatena-follow-button
====================================== */

.hatena-follow-button {
    color: hsl(0 0% 100%) !important;
    padding-bottom: .2em
}

.hatena-follow-button.unsubscribing,
.hatena-follow-button.subscribing {
    background-color: hsl(210 67% 44%);
    border: 1px solid hsl(210 67% 32%)
}

.hatena-follow-button.unsubscribing:hover,
.hatena-follow-button.subscribing:hover {
    background-color: hsl(210 67% 32% / .95);
    border: 1px solid hsl(210 67% 24% / .95);
    color: hsl(0 0% 100%) !important
}

/* @hatena-urllist
====================================== */

.hatena-urllist {
    list-style: none;
    margin: 0;
    padding: 0
}

.hatena-urllist li {
    border-top: 1px solid hsl(0 0% 87%);
    padding: .5em 0
}

.hatena-urllist li:last-child {
    border-bottom: 1px solid hsl(0 0% 87%)
}

/* @hatena-module-* hatena-urllist li
====================================== */

/* 各hatena-module-body内の余白調整 */

.hatena-module-category .hatena-urllist li,
.hatena-module-archive .hatena-urllist li,
.hatena-module-circles .hatena-urllist li {
    padding: 1em
}

/* @archive-module-month
====================================== */

#box2 .hatena-urllist .archive-module-year .archive-module-month {
    border-top: 1px solid hsl(0 0% 87%);
    padding: 1em
}

#box2 .hatena-urllist .archive-module-year .archive-module-month:first-child,
#box2 .hatena-urllist .archive-module-year .archive-module-month:last-child  {
    margin: 1em 0 0;
    padding-bottom: 0
}

/* @hatena-urllist urllist-category-link
====================================== */

.hatena-urllist .urllist-category-link {
    font-size: .7rem;
    padding: .1em .3em
}

/* @hatena-urllist urllist-date-link
====================================== */

.hatena-urllist .urllist-date-link a {
    color: hsl(0 0% 60%)
}

/* @hatena-urllist urllist-entry-body
====================================== */

.hatena-urllist .urllist-entry-body {
    margin-top: .3em
}

/* @ Add Trending
====================================== */

#box2 .hatena-module-entries-access-ranking {
    counter-reset: rank
}

.entries-access-ranking-item-inner {
    counter-increment: rank;
    line-height: 1.5;
    position: relative
}

.entries-access-ranking-item-inner::before {
    background-color: hsl(0 0% 0% / .9);
    color: hsl(0 0% 100%);
    content: counter(rank);
    font-weight: 700;
    height: 20px;
    line-height: 20px;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    width: 20px
}

#box2 .hatena-module-entries-access-ranking .urllist-date-link,
#box2 .hatena-module-entries-access-ranking .urllist-title-link {
    margin-left: 2em /* 1.5625em */
}

#box2 .hatena-module-entries-access-ranking .urllist-title-link {
    display: inline-block
}

#box2 .hatena-module-entries-access-ranking .urllist-image-link+.urllist-date-link,
#box2 .hatena-module-entries-access-ranking .urllist-image-link+.urllist-title-link,
#box2 .hatena-module-entries-access-ranking .urllist-image-link+.urllist-date-link+.urllist-title-link {
    margin-left: 0
}

#box2 .hatena-module-entries-access-ranking .urllist-image-link+.urllist-title-link,
#box2 .hatena-module-entries-access-ranking .urllist-image-link+.urllist-date-link+.urllist-title-link {
    display: inline
}

/* @urllist-image
====================================== */

#box2 .hatena-urllist li .urllist-image {
    margin: 0 1em .7em 0 /* アイキャッチ画像の右側に余白 */
}

/* @hatena-urllist urllist-title-link
====================================== */

#box2 .hatena-urllist li .urllist-title-link {
    font-size: var(--clamp-12px-14px);
    font-weight: 500;
    word-break: break-all
}

/* @archive-module-button
====================================== */

.hatena-module-body .archive-module-button {
    color: hsl(0 0% 0%)
}

/* @search-form
====================================== */

.search-form {
    background-color: hsl(0 0% 100% / .2);
    border-bottom: 2px solid transparent;
    padding: .5em .75em;
    text-align: left;
    width: 100%;
    display: flex;
    align-items: center
}

.search-form:hover {
    border-bottom: 2px solid hsl(207 14% 85%)
}

.search-form .search-module-input {
    background: none;
    border: none;
    color: hsl(207 14% 85%);
    flex: 1;
    font-size: .875rem;
    line-height: 1.6;
    outline: none
}

.search-form .search-module-button {
    background: transparent url(https://cdn.blog.st-hatena.com/images/theme/search@2x.png?version=22f3cada4c2c30955d90dee0ad651e) no-repeat center;
    background-size: 20px 20px;
    border: none;
    height: 24px;
    margin: 0 0 0 auto;
    opacity: .5;
    text-indent: 200%;
    width: 24px
}

.search-form .search-module-button:hover {
    opacity: .85
}

/* @archive-module-calendar
====================================== */

.hatena-module .archive-module-calendar,
.hatena-module .archive-module-calendar a {
    color: hsl(0 0% 46%)
}

.hatena-module .archive-module-calendar a {
    text-decoration: underline
}

.hatena-module .calendar-sunday,
.hatena-module .archive-module-calendar-week td:nth-of-type(1),
.hatena-module .archive-module-calendar-week td:nth-of-type(1) a {
    color: hsl(16 100% 50%)
}

.hatena-module .calendar-saturday,
.hatena-module .archive-module-calendar-week td:nth-of-type(7),
.hatena-module .archive-module-calendar-week td:nth-of-type(7) a {
    color: hsl(188 100% 50%)
}

.hatena-module .archive-module-calendar a:hover,
.hatena-module .archive-module-calendar-week td:nth-of-type(1) a:hover,
.hatena-module .archive-module-calendar-week td:nth-of-type(7) a:hover {
    opacity: .7
}

/* @hatena-module-html ul
====================================== */

.hatena-module-html ul {
    list-style: none
}

/* @recent-comments
====================================== */

.recent-comments,
.recent-comments .user-id img {
    overflow-wrap: anywhere
}

/* aboutページ編集 */
/* @page-about entry-content dt dd
====================================== */

.page-about .entry-content dt {
    border-bottom: 1px solid hsl(0 0% 87%);
    font-weight: 700;
    margin-bottom: .5em
}

.page-about .entry-content dd {
    margin-bottom: 2em;
    margin-left: 0
}

/* アーカイブページ */
/* @archive-header-category
====================================== */

.archive-header-category {
    text-align: center
}

/* @page-archive top-box
====================================== */

.page-archive #top-box {
    display: none
}

/* @page-archive archive-entries
====================================== */

.page-archive .archive-entries {
    display: grid;
    gap: .5em;
    grid-template-columns: 1fr;
    grid-template-rows: auto /* 縦スクロールバー対策 */
}

@media(min-width: 480px) {
    .page-archive .archive-entries {
        grid-template-columns: repeat(auto-fit, minmax(48%, 1fr))
    }
}

@media(min-width: 768px) {
    .page-archive .archive-entries {
        grid-template-columns: repeat(auto-fit, minmax(32%, 1fr))
    }
}

/* @page-archive archive-entry
====================================== */

.page-archive .archive-entry {
    background-color: hsl(0 0% 100%);
    border: 1px solid hsl(0 0% 87%);
    box-shadow: 6px 6px 6px 0 hsl(0 0% 0% / .45);
    line-height: 1.3;
    padding: .75rem .75rem 2rem;
    position: relative;
    word-break: break-all;
    display: grid;
    gap: 8px 16px;
    grid-template-rows: auto;
    grid-template-columns: auto;
    grid-template-areas: "image" "category" "title" "body"
}

/* @page-archive entry-thumb-link
====================================== */

.page-archive .entry-thumb-link {
    grid-area: image;
    display: block;
    overflow: hidden
}

/* @page-archive entry-thumb
====================================== */

.page-archive .entry-thumb {
    aspect-ratio: 1.618 / 1;
    border: 1px solid hsl(0 0% 87%);
    float: none;
    height: auto;
    margin: 0;
    width: 100%
}

/* @page-archive .categories
====================================== */

.page-archive .categories {
    grid-area: category;
    line-height: 1
}

/* @page-archive archive-category-link
====================================== */

.page-archive .archive-category-link {
    font-size: .75rem
}

.page-archive .archive-category-link:not(:first-child) {
    display: none
}

/* @page-archive archive-date
====================================== */

.page-archive .archive-date {
    font-size: .75rem;
    margin-bottom: 0;
    position: absolute;
    left: 10px;
    bottom: 5px
}

.page-archive .archive-date a {
    color: hsl(0 0% 49%)
}

/* @page-archive entry-title
====================================== */

.page-archive .entry-title {
    grid-area: title;
    display: block;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    margin: 0;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical
}

/* @page-archive entry-title-link
====================================== */

.page-archive .entry-title .entry-title-link {
    color: hsl(0 0% 0%)
}

/* @page-archive archive-entry-body
====================================== */

.page-archive .archive-entry-body {
    grid-area: body
}

/* @page-archive entry-description
====================================== */

.page-archive .entry-description {
    color: hsl(0 0% 27%);
    font-size: .75rem;
    margin: 0;
    max-height: 4.5em;
    overflow: hidden;
    text-align: left;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical
}

/* @archive-entry-tags-wrapper
====================================== */

.page-archive .archive-entry-tags-wrapper {
    display: none
}

/* @page-archive social-buttons
====================================== */

.page-archive .social-buttons {
    display: block;
    text-align: right;
    width: 100%
}

/* @bookmark-widget-counter
====================================== */

.page-archive .bookmark-widget-counter {
    text-align: right
}

/* @page-archive star-container
====================================== */

.page-archive .star-container {
    display: none
}

/* @footer
====================================== */

#footer {
    font-size: .8rem;
    margin-top: 2em;
    padding: 2rem 0;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center
}

#footer #footer-inner {
    margin: 0 auto;
    width: 90vw
}

@media (min-width: 992px) {
    #footer #footer-inner {
        max-width: 1200px
    }
}

#footer #footer-inner p {
    margin: .5em auto
}

#footer address img {
    display: inline-block
}

/* @footer End
====================================== */

/* End System 
   ========================================================================== */
/* 
slide-wrap{
   display:-webkit-box;
   display:-ms-flexbox;
   display: flex;
   overflow-x: scroll;
   -webkit-overflow-scrolling: touch;
   overflow-scrolling: touch;
   scroll-snap-type: x mandatory;
   padding:0 0 1em;
   margin:0 0 2em 0;
   scroll-behavior: smooth;
}
.slide-wrap .slide-content{
   flex: 0 0 90%;
   margin: 0 10px;
   height:100%;
}
@media screen and (max-width: 480px){
.slide-wrap .slide-content {
    flex: 0 0 88%;
    margin: 0px 5px;
    scroll-snap-align:center;
}
}
</system> */