@charset "UTF-8";
/*!
  Theme: note+
  Author: Askthewind's diary
  Author URI: https://askthewind.hatenablog.com/
  Responsive: yes
  Description: モバイルファースト最適化済みのはてなブログ用デザインテーマです。
  Breakpoint: Tailwind compliant.
  License: Released under the CCL.
*/

/* ==========================================================================
/* ! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
/* Vendor Prefix and IE other than text-size-adjust CSS that removed
/* 備考: IE向け記述と不要なベンダープレフィックスを削除
/* Document ページ全体の基本的な設定
   ========================================================================== */
/**
 * 1. 全ブラウザで行の高さを統一。
 * 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要素にデフォルトで設定されている余白（margin）を削除。
 */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
/* 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タグ（整形済みテキスト）のフォントを等幅フォントに統一し、
 * 2. フォントサイズが他の要素から正しく継承されるように修正。
 */
/**
 * 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 テキスト関連の要素の設定
   ========================================================================== */
/**
 * title属性を持つabbrタグ（略語など）の下線を点線で表示するように統一。
 */
/**
 * Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */
abbr[title] {
  text-decoration: underline; 
  text-decoration: underline dotted; 
}

/**
 * bタグとstrongタグ（太字）のフォントの太さを、より太く表示するように統一。
 */
/**
 * Add the correct font weight in Chrome, Edge,and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. code, kbd, sampタグ（コードなど）のフォントを等幅フォントに統一し、
 * 2. フォントサイズが正しく継承されるように修正。
 */
/**
 * 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 フォーム関連の要素の設定
   ========================================================================== */
/**
 * ボタンや入力フォームなどのフォント関連のスタイルを、
 * 親要素から継承するように設定し、表示を統一
 */
/**
 * Change the font styles in all browsers.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; 
  font-size: 100%; 
  line-height: 1.15;
}

/**
 * fieldsetを囲むlegend要素の余白（padding）を削除。
 */
/**
 * Remove the padding so developers are not caught out when they zero out
 * `fieldset` elements in all browsers.
 */
legend {
  padding: 0;
}

/**
 * progress要素（プログレスバー）の縦方向の表示位置を揃える。
 */
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/* Interactive 操作可能な要素の設定
   ========================================================================== */
/**
 * details要素内で使用されるsummary要素を、
 * リストアイテムとして表示するように統一。
 */
/*
 * 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(180 5% 96%);
    color: hsl(0 0% 0% / 87%);
    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 Variable", 
                 "Segoe UI Emoji", "Noto Color Emoji";
    font-feature-settings: "palt";
    font-size: 1rem;
    line-height: 1.6;
    overflow-wrap: break-word;
}

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

img {
    vertical-align: top;
}

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

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

/* @h*
====================================== */

h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: hsl(0 0% 13%);
    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%);
    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,picture,svg,select,textarea {
    max-width: 100%;
}

:where(svg:not([fill])) {
    fill: currentColor;
}

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

#blog-title {
    padding: 1em 0;
    text-align: center;
}

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

@media (min-width: 1024px) {
    #blog-title {
        text-align: left;
    }
}

/* @title
====================================== */

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

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

#title a {
    color: hsl(0 0% 13%);
}

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

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

/* @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: 768px) {
    .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%);
}

#container,
#footer {
    margin: auto;
    width: 100%;
}

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

/* @container-inner,footer-inner
====================================== */

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

@media(min-width: 1024px) {
    #container-inner,
    #footer-inner {
        max-width: 100%;
    }
}

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

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

@media(min-width: 1024px) {
    #content-inner {
        gap: 0 32px;
        grid-template-columns: minmax(0, 1fr) 336px;
    }
}

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

#box2 {
    overflow-wrap: anywhere;
}

#box1 {
    display: none;
}

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

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

#bottom-editarea {
    margin: 1em auto 0;
}

#top-editarea ul,#bottom-editarea ul {
    list-style: none;
    margin-block-start: 0;
    margin-block-end: 0;
    padding-inline-start: 0;
}

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

.breadcrumb {
    border-bottom: 1px solid hsl(0 0% 87%);
    font-size: .9rem;
    margin: 0;
}

@media(min-width: 768px) {
    .breadcrumb {
        padding: 0 56px .5em;
    }
}

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

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

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

@media (min-width: 768px) {
    .entry {
        padding: 32px 56px;
    }
}

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

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

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

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

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

.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;
    font-weight: 600;
    line-height: 1.4;
    margin: 0 0 .5em;
    word-break: break-all;
}

@media (min-width: 1024px) {
    .entry-title {
        font-size: 1.6rem;
    }
}

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

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

.categories a {
    background-color: hsl(180 3% 93%);
    border-radius: 4px;
    display: inline-block;
    font-size: .875rem;
    line-height: 1.4;
    margin-right: .5em;
    padding: .25em .5em .125em;
    position: relative;
    z-index: 1;
}

.categories a:hover {
    background-color: hsl(180 2% 88%);
}

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

/* 編集ボタン */

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

.entry-header-menu a {
    background-color: hsl(210 20% 98%);
    border: 1px solid hsl(180 10% 83%);
    border-radius: 4px;
    cursor: pointer;
    display: inline-block;
    font-size: .625rem;
    font-weight: 500;
    letter-spacing: .025em;
    line-height: 1.4;
    padding: .375em .5em;
    transition: all .2s;
}

.entry-header-menu a:hover {
    background-color: hsl(210 20% 96%);
}

/* @entry-header social-buttons
====================================== */

.entry-header .social-buttons {
    margin-top: 1.25em;
}

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

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

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

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

/* @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;
    scroll-margin-top: 3.5em;
}

.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 table-of-contents
====================================== */

/* ツールバー 目次 */

.entry-content .table-of-contents {
    background-color: hsl(0 0% 96% / .9);
    border: 1px solid hsl(0 0% 87%);
    list-style: none;
    font-size: var(--clamp-12px-15px);
    margin: 1em 0;
    padding: 1em 1em 1em 2em;
}

.entry-content .table-of-contents::before {
    content: "Contents";
    display: inline-block;
    font-size: .813rem;
    line-height: 2rem;
}

@media (min-width: 768px) {
    .entry-content .table-of-contents::before {
        font-size: 1rem;
    }
}

.page-entry .entry-content .table-of-contents a {
    background-color: hsl(0 0% 0% / 0);
    border-radius: 4px;
    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 .table-of-contents li ul {
    list-style: none;
    margin-left: 0;
}

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

/* ツールバー 引用 */

.entry-content blockquote {
    margin: 1.5em 0;
    padding-inline: 1em;
    position: relative;
}

.entry-content blockquote::before {
    background-color: hsl(180 2% 88%);
    border-radius: 4px;
    content: "";
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
}

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

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

/* @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 hsl(0 0% 87%);
    border-radius: .375em;
    font-size: 1em;
    line-height: 1.5;
}

.entry-content pre {
    margin: .5em 0;
    padding: 1em;
    position: relative;
}

.entry-content :not(pre) > code {
    padding: .0625em .25em;
}

.entry-content pre.code {
    padding-top: 2em;
    white-space: pre;
}

.entry-content pre.code::before {
    background-color: hsl(180 8% 17%);
    color: hsl(0 0% 100%);
    content: "Plain text";
    font-size: .875rem;
    font-weight: 500;
    line-height: 1;
    padding: .25rem .5rem;
    position: absolute;
    top: 0;
    left: 0;
}

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

/* @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: 1024px) {
    .entry-content table {
        font-size: .9rem;
    }
}

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

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

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

/* ツールバー 脚注 */

.page-index .footnote { 
    display: none;
}

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

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

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

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

/* ツールバー 続きを読む */

a.entry-see-more  {
    background-color: hsl(0 0% 100%);
    border: 1px solid hsl(180 1% 29%);
    border-radius: 8px;
    color: hsl(180 1% 29%);
    display: inline-block;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.5;
    margin-block: .5em 1em;
    padding: 4px 8px;
}

a.entry-see-more:hover {
    background-color: hsl(0 0% 60% / .1);
}

/* @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: 1024px) {
    .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, Helvetica, "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: 1024px) {
    .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, "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;
    margin: 1.5em 0;
    padding: 1em;
}

.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;
}

/* コメント欄 */
/* @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-block: 1.875rem;
    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.75em; 
    min-height: 1.25em; 
    padding: .625em 1.25em .625em 4.75em;
    position: relative;
}

.comment-box .entry-comment:last-child {
    margin-bottom: 2em; 
}

/* @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: 10px;
    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 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

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

.pager>* {
    flex: 1;
}

.pager a {
    border: 1px solid hsl(0 0% 89%);
    border-radius: 4px;
    color: hsl(0 0% 50%);
    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 a {
        font-size: .975rem;
        padding: 1em 1.25em;
    }
}

.pager a:hover {
    background-color: hsl(0 0% 100%);
    border: 1px solid hsl(0 0% 0% /0);
    color: hsl(0 0% 48%);
}

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

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

@media (min-width: 768px) {
    .hatena-module {
        font-size: .9rem;
    }
}

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

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

.hatena-module-title {
    background-color: hsl(0 0% 92% / .9);
    border-radius: 8px 8px 0 0;
    display: inline-block;
    font-size: 1rem;
    font-weight: 700;
    height: 50px; 
    line-height: 50px;
    padding: 0  1.875em;
}

.hatena-module-html .hatena-module-title,
.hatena-module-search-box .hatena-module-title,
.hatena-module-recent-entries .hatena-module-title,
.hatena-module-entries-access-ranking .hatena-module-title {
    margin-bottom: .6em;
}

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

/* @hatena-module-body
====================================== */

.hatena-module-body {
    padding-top: 1em;
}

.hatena-module-html .hatena-module-body,
.hatena-module-search-box .hatena-module-body,
.hatena-module-recent-entries .hatena-module-body,
.hatena-module-entries-access-ranking .hatena-module-body {
    padding-top: 0;
}

@media (min-width: 1024px) {
    .hatena-module.hatena-module-profile .hatena-module-body,
    .hatena-module.hatena-module-archive .hatena-module-body,
    .hatena-module.hatena-module-circles .hatena-module-body,
    .hatena-module.hatena-module-category .hatena-module-body,
    .hatena-module.hatena-module-links .hatena-module-body {
        background-color: hsl(0 0% 100%);
        border-radius: 0 8px 8px 8px;
        padding: 1em;
    }
}

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

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

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

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

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

/* urllist module */

.hatena-urllist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

@media (min-width: 1024px) {
    #box2 .hatena-urllist {
        flex-direction: column;
    }
}

@media (min-width: 1024px) {
    #box2 .hatena-module.hatena-module-category .hatena-urllist {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .hatena-module.hatena-module-circles .hatena-urllist {
        gap: 0;    
    }
}

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

.hatena-urllist li {
    padding: .5em 0;
    flex: 1 1 112px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

@media (min-width: 1024px) {
    #box2 .hatena-urllist li {
        flex: 0 0 100%;
    }
}

.hatena-urllist li:last-child {
    padding-bottom: 0;
}

.hatena-module.hatena-module-category .hatena-urllist li {
    border: 1px solid hsl(0 0% 87%);
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.5;
    padding: 4px 8px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
}

@media (min-width: 1024px) {
    #box2 .hatena-module.hatena-module-category .hatena-urllist li {
        flex: 0 0 auto;
    }
}

.hatena-module.hatena-module-category .hatena-urllist li:hover {
    background-color: hsl(216 20% 95%);
}

.hatena-module.hatena-module-links .hatena-urllist li,
.hatena-module.hatena-module-authors-list .hatena-urllist li,
.hatena-module.hatena-module-recent-comments .hatena-urllist li {
    flex: 0 0 100%;
}

.hatena-module.hatena-module-circles .hatena-urllist li {
    border: 1px solid hsl(0 0% 87%);
    padding: .5em;
    flex-flow: row wrap;
    flex: 1 1 201px;
}

@media (min-width: 1024px) {
    .hatena-module.hatena-module-circles .hatena-urllist li {
        border-bottom: none;
        flex-direction: column;
    }
    .hatena-module.hatena-module-circles .hatena-urllist li:last-of-type {
        border-bottom: 1px solid hsl(0 0% 87%);
    }
}

.hatena-module.hatena-module-archive .hatena-urllist li {
    flex-flow: row wrap;
}

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

.hatena-urllist li .urllist-image {
    aspect-ratio: 1.618 / 1;
    border-radius: 4px;
    float: none;
    margin: 0 0 .7em;
    object-fit: cover;
    transition: .2s ease-in-out;
    width: 100%;
}

@media (min-width: 1024px) {
    #box2 .hatena-urllist li .urllist-image {
        float: left;
        margin: 0 .7em .7em 0;
        width: 135px;
    }
}

.hatena-urllist li .urllist-image:hover {
    background-color: hsl(0 0% 0% / .08);
    opacity: .55;
}

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

.hatena-urllist li .urllist-title-link {
    font-size: var(--clamp-12px-14px);
    font-weight: 500;
    overflow: hidden;
    word-break: break-all;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

@media (min-width: 1024px) {
    .hatena-urllist li .urllist-title-link {
        -webkit-line-clamp: 3;
    }
}

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

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

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

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

/* @urllist-see-more
====================================== */

.urllist-see-more {
    margin-top: 0;
    margin-bottom: 1em;
}

@media (min-width: 1024px) {
    .urllist-see-more {
        margin-top: 1em;
        margin-bottom: 0;
    }
}

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

.hatena-urllist .archive-module-year .archive-module-month {
    display: none;
}

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

.hatena-urllist .urllist-entry-body {
    margin-top: .3em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

/* @entries-access-ranking
====================================== */

.entries-access-ranking {
    counter-reset: rank;
}

.entries-access-ranking li {
    padding: 0;
    position: relative;
}

.entries-access-ranking li::before {
    border-radius: 4px;
    color: hsl(0 0% 100%);
    content: counter(rank);
    counter-increment: rank;
    display: block;
    font-size: .8125rem;
    font-weight: 700;
    height: 20px;
    line-height: 20px;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    width: 20px;
}

.entries-access-ranking li:nth-of-type(1)::before {
    background-color: hsl(40 100% 55% / .95);
}

.entries-access-ranking li:nth-of-type(2)::before {
    background-color: hsl(0 0% 54% / .95);
}

.entries-access-ranking li:nth-of-type(3)::before {
    background-color: hsl(30 30% 50% / .95);
}

.entries-access-ranking li:nth-of-type(n+4)::before {
    background-color: hsl(120 100% 50% / .95);
}

.entries-access-ranking li:nth-of-type(n+9)::before {
    background-color: hsl(0 0% 25% / .95); 
}

.entries-access-ranking .urllist-date-link {
    margin-left: 2.75em;
}

.entries-access-ranking .urllist-title-link {
    display: inline-block;
    margin-left: 2.5em; 
}

.entries-access-ranking .urllist-image-link+.urllist-date-link,
.entries-access-ranking .urllist-image-link+.urllist-title-link,
.entries-access-ranking .urllist-image-link+.urllist-date-link+.urllist-title-link {
    margin-left: 0;
}

.entries-access-ranking .urllist-image-link+.urllist-title-link,
.entries-access-ranking .urllist-image-link+.urllist-date-link+.urllist-title-link {
    display: inline;
}

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

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

.search-form:hover {
    border-bottom: 1px solid hsl(0 0% 0% / .1);
}

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

.search-form .search-module-button {
    background: transparent url(https://cdn.blog.st-hatena.com/images/theme/search@2x.png?version=f5154c74e6e38109ce2f0c7b9afd51) 
                no-repeat center / 20px 20px;
    border: none;
    color: transparent;
    cursor: pointer;
    height: 24px;
    opacity: .5;
    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:first-of-type,
.hatena-module .archive-module-calendar-week td:first-of-type 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:first-of-type a:hover,
.hatena-module .archive-module-calendar-week td:nth-of-type(7) a:hover {
    opacity: .7;
}

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

.hatena-module-html p {
    margin: 0;
}

.hatena-module-html ul {
    list-style: none;
    margin-block: 0;
    padding-inline-start: 0;
}

.hatena-module-html video,
.hatena-module-html iframe {
    max-width: 100%;
}

.hatena-module-html video {
    height: auto;
}

/* @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: 640px) {
    .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%);
    line-height: 1.3;
    padding: 0 0 2rem;
    position: relative;
    word-break: break-all;
    display: grid;
    grid-template-columns: auto;
    grid-template-rows: auto;
    row-gap: .75em;
}

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

.page-archive .entry-thumb-link {
    order: -2;
    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-right: 0;
    width: 100%;
}

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

.page-archive .categories {
    margin: 0;
    padding: 0 .75rem;
    order: -1;
    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: 12px;
    bottom: 8px;
}

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

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

.page-archive .archive-entry-header {
    padding: 0 .75rem;
}

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

.page-archive .entry-title {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    margin: 0;
    order: 1;
    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 {
    padding: 0 .75rem;
    order: 2;
}

/* @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;
}

/* @page-archive search-result-button
====================================== */

.search-result-form .search-result-button {
    top: 50%;
    transform: translateY(-50%);
}

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

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

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

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

#footer address img {
    display: inline-block;
}

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

/* End システム
   ========================================================================== */
/* @entry-footer entry-footer-time
====================================== */

/* Add Text */

.entry-footer .entry-footer-time .updated {
    display: inline-block;
}

.entry-footer .entry-footer-time .updated::before {
    content: "\2b6e\00a0";
}

.entry-footer .entry-footer-time .updated::after {
    content: "に記事を公開しました";
}

/* @entry-footer-modules
====================================== */

/* Add for JavaScript */

#main .hatena-urllist li .urllist-image,
#box2 .hatena-urllist li .urllist-image {
    aspect-ratio: 1.618 / 1;
    object-fit: cover;
}

/* @Add othes html
====================================== */

/* Add othes html */

.hatena-module-html .thumbnails-inline-grid {
    display: inline-grid;
    gap: 1.25em;
}

.hatena-module-html .user-agent-stylesheet-none {
    margin-block: 0;
    padding-inline-start: 0;
}

.hatena-module-html .thumbnails {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25em;
}

.hatena-module-html .span2 {
    background-clip: padding-box;
    background-color: hsl(0 0% 100%);
    border-radius: 5px;
    box-shadow: 0 1px 4px hsl(0 0% 0% / .4);
}

.hatena-module-html .theme-thumb {
    aspect-ratio: 4 / 3;
    background: hsl(210 14% 97%) 50%;
    background-clip: padding-box;
    background-size: cover;
    border-bottom: 1px solid hsl(0 0% 87%);
    border-radius: 5px;
    height: auto;
    width: 100%;
}

.hatena-module-html .theme-meta {
    color: hsl(0 0% 40%);
    font-size: .8125rem;
    height: 30px;
    line-height: 30px;
    overflow: hidden;
    padding: 0 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

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

/* Add Japanese text */

@media (min-width: 1280px) {
    .hatena-module-title::after {
        display: inline-block;
        font-size: 50%;
        font-weight: 700;
        padding-left: .5rem;
    }
    .hatena-module-profile .hatena-module-title::after {
        content: "プロフィール";
    }
    .hatena-module-search-box .hatena-module-title::after {
        content: "サイト内検索";
    }
    .hatena-module-recent-entries .hatena-module-title::after {
        content: "最新記事";
    }
    .hatena-module-archive .hatena-module-title::after {
        content: "過去記事";
    }
    .hatena-module-links .hatena-module-title::after {
        content: "お気に入りのリンクです";
    }
    .hatena-module-entries-access-ranking .hatena-module-title::after {
        content: "人気記事";
    }
    .hatena-module-category .hatena-module-title::after {
        content: "カテゴリー";
    }
    .hatena-module-recent-comments .hatena-module-title::after {
        content: "最近のコメント";
    }
    .hatena-module-circles  .hatena-module-title::after {
        content: "参加中のグループです";
    }
    .hatena-module-authors-list .hatena-module-title::after {
        content: "著者について";
    }
    .hatena-module-custom-image-converter .hatena-module-title::after {
        content: "画像変換ツールです";
    }
    .hatena-module-custom-css-generator .hatena-module-title::after {
        content: "CSS用変換ツールです";
    }
    .hatena-module-custom-about .hatena-module-title::after {
        content: "はてなブログ用に作成したデザインテーマです";
    }
    .hatena-module-related-entries .hatena-module-title::before {
        content: "You Might Aloso Like";
        display: inline-block;
        font-size: 1.3rem;
        font-weight: 700;
        padding-right: .5rem;
    }
    #main .hatena-module-related-entries .hatena-module-title,
    #box2 .hatena-module-related-entries .hatena-module-title {
        font-size: 64%;
    }
}

/* @Add page-top
====================================== */

/* Add page-top */ 

#page-top {
    background-color: hsl(0 0% 100%);
    border: 1px solid hsl(252 42% 60%);
    border-radius: 50%;
    font-size: 1.2rem;
    line-height: 1.2rem;
    opacity: 0;
    padding: .625em;
    position: fixed;
    right: .625em;
    bottom: .625em;
    transform: translateY(20px);
    transition: opacity .4s ease, visibility .4s ease, transform .4s ease;
    visibility: hidden;
}

#page-top.show {
    opacity: 1;
    transform: translateY(0);
    visibility: initial;
}

#page-top.show:hover {
    background-color: hsl(252 42% 60% / .1);
    box-shadow: 0 .125em .625em -.375em hsl(0 0% 0% / .5), 
                    0 .1875em .625em -.25em hsl(0 0% 0% / .2);
    color: hsl(252 42% 60%);
}

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

/* display switching by page */ 

.page-index .table-of-contents {
    display: none;
}

/* @Prism.js + toolbar plugin
====================================== */

/* Add for JavaScript */

/* コードブロック language-クラスのスタイル調整 */
.entry-content pre[class*=language-] {
    border: 1px solid;
    border-radius: .375em;
    padding-top: 2em;
    overflow-y: hidden;
}

/* ツールバー コピーボタンと言語ラベルの表示場所 */
.entry-content div.code-toolbar>.toolbar {
    border-bottom: 1px solid hsl(220 13% 91%);
    border-top-left-radius: .375em;
    border-top-right-radius: .375em;
    padding: .5em 1em;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    opacity: 1;
    position: absolute;
    top: 0;
    right: .75em;
    left: .75em;
    z-index: 10;
}

/* コピーボタン */
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1) {
    opacity: 0;
}

.entry-content div.code-toolbar:hover>.toolbar>.toolbar-item:nth-of-type(1), 
.entry-content div.code-toolbar:focus-within>.toolbar>.toolbar-item:nth-of-type(1) {
    opacity: 1;
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span {
    background-color: hsl(0 0% 0% / .9);
    color: hsl(0 0% 100% / .9);
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a:hover,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button:hover,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span:hover {
    color: hsl(0 0% 100%);
    cursor: pointer;
}

/* 言語名ラベル */
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(2)>span {
    background-color: hsl(0 0% 0% / .9);
    color: hsl(0 0% 100%);
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(2)>span:hover {
    color: hsl(0 0% 100%);
}

/* ほとんどのテーマに対応するため非表示 */
.entry-content pre.code::before {
    display: none;
}

/* OSのテーマに自動追従（ライト） */
@media (prefers-color-scheme: light) {

    .entry-content pre[class*=language-] {
        background-color: hsl(0 0% 100% / .9);
        border-color: hsl(220 13% 91%);
    }
    
    .entry-content code[class*=language-],
    .entry-content pre[class*=language-] {
        color: hsl(210 15% 18%);
    }
    
    .line-numbers-rows > span { 
        color: hsl(218 11% 65%)!important;  
    }
    
    /* シンタックス・ハイライト */
    
    /* コメント、プロローグ、DOCTYPE、CDATA */
    .token.comment,
    .token.prolog,
    .token.doctype,
    .token.cdata {
        color: hsl(210 9% 44%)!important;
    }

    /* 句読点 */
    .token.punctuation {
        color: hsl(210, 15%, 18%)!important;
    }

    /* プロパティ名、タグ、定数、シンボル、削除要素 */
    .token.property,
    .token.tag,
    .token.constant,
    .token.symbol,
    .token.deleted {
        color: hsl(354 61% 54%)!important;
    }

    /* Boolean, 数値 */
    .token.boolean,
    .token.number {
        color: hsl(212 100% 40%)!important;
    }

    /* セレクタ、属性名、文字、挿入要素、文字列、ビルトイン */
    .token.selector,
    .token.attr-name,
    .token.string,
    .token.char,
    .token.builtin,
    .token.inserted {
        color: hsl(212 95% 20%)!important;
    }

    /* 演算子、エンティティ、URL */
    .token.operator,
    .token.entity,
    .token.url {
        background: none;
        color: hsl(354 61% 54%)!important;
    }

    /* キーワード、ルール名、属性値 */
    .token.atrule,
    .token.keyword,
    .token.attr-value {
        color: hsl(354 61% 54%)!important;
    }

    /* 関数、クラス名 */
    .token.function,
    .token.class-name {
        color: hsl(261 48% 51%)!important;
    }

    /* 正規表現、重要、変数 */
    .token.regex,
    .token.important,
    .token.variable {
        color: hsl(26 87% 46%)!important;
    }
}

/* OSのテーマに自動追従（ダーク）*/
@media (prefers-color-scheme: dark) {

    .entry-content pre[class*=language-] {
        background-color: hsl(220 13% 18%);
        border-color: hsl(0 0% 100% / .06); 
    }
    
    .entry-content code[class*=language-],
    .entry-content pre[class*=language-] {
        color: hsl(220 14% 71%);
    }
    
    .line-numbers-rows > span { 
        color: hsl(220 9% 46%)!important;  
    }

    /* コメント */
    .token.comment,
    .token.prolog,
    .token.doctype,
    .token.cdata {
        color: hsl(120 100% 75%)!important; /* 薄い緑 */
        font-style: italic;
    }

    /* 句読点 */
    .token.punctuation {
        color: hsl(220 14% 71%)!important; /* 基本文字と同じ */
    }

    /* プロパティ名、タグ、定数、シンボル、削除要素 */
    .token.property,
    .token.tag,
    .token.constant,
    .token.symbol,
    .token.deleted {
        color: hsl(0 100% 75%)!important; /* 赤 */
    }

    /* Boolean, 数値 */
    .token.boolean,
    .token.number {
        color: hsl(29 100% 50%)!important; /* 明るいオレンジ */
    }

    /* 文字列、属性値 */
    .token.string,
    .token.char,
    .token.attr-value,
    .token.inserted {
        color: hsl(106 43% 57%)!important; /* 緑 */
    }

    /* キーワード、演算子、ルール名 */
    .token.keyword,
    .token.atrule {
        color: hsl(286 60% 67%)!important; /* 紫 */
    }

    .token.operator {
        color: hsl(207 82% 66%)!important; /* 水色 */
    }

    /* 関数、クラス名 */
    .token.function {
        color: hsl(187 47% 55%)!important; /* 青  */
    }
    
    .token.class-name {
       color: hsl(44 100% 50%)!important; /* 黄色 */
    }

    /* 変数、正規表現、重要 */
    .token.variable,
    .token.regex,
    .token.important {
        color: hsl(29 100% 50%)!important; /* オレンジ */
    }
}

/* @Prism.js toolbar plugin++
====================================== */

/* コードブロック language-クラスのスタイル調整 */
.entry-content pre[class*=language-] {
    padding-top: 4em;
}

/* ツールバー コピーボタンと言語ラベルの表示場所 */
.entry-content div.code-toolbar>.toolbar {
    background-image: linear-gradient(90deg,hsl(220 14% 96%),hsl(220 13% 91%));
    right: 0;
    left: 0;
}

/* 言語名ラベル */
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(2)>span {
    background-color: transparent;
    color: hsl(221 39% 11%);
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(2)>span:hover {
    color: hsl(221 39% 11%);
}

/* コピーボタン */
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1) {
    color: hsl(217 19% 27%);
    opacity: 1;
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span {
    background-color: transparent;
    background-color: hsl(0 0% 100%);
    box-shadow: 0 0 .5em hsl(0 0% 0% / .2);
    color: hsl(217 19% 27%);
    padding: .25em .65em;
    transition: transform  .18s ease, 
                background-color .18s ease, 
                border-color .18s ease, 
                color .18s ease;
}

.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>a:hover,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>button:hover,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span:focus,
.entry-content div.code-toolbar>.toolbar>.toolbar-item:nth-of-type(1)>span:hover {
    background-color: hsl(0 0% 100%);
    color: hsl(217 19% 27%);
    transform: scale(1.06);
}

/* @Prism.js copy-to-clipboard-button
====================================== */

/* Prismコピーボタンのカスタマイズ */
.copy-to-clipboard-button {
    height: 2.5em;
    position: relative;
    vertical-align: middle;
    width: 2.5em;
}

/* ボタンにマウスが乗ったときに少し薄くする */
.copy-to-clipboard-button:hover {
    opacity: .7;
}

/* ボタンの外にテキストを配置して非表示にする */
.copy-to-clipboard-button span {
    background-color: hsl(0 0% 12% / .9);
    border-radius: 3px;
    color: hsl(0 0% 100%);
    font-size: .5rem;
    opacity: 0;
    padding: 3px 4px;
    position: absolute;
    bottom: 120%;
    left: 50%;
    transform: translateX(-50%);
    transition: opacity .2s ease-in-out, visibility .2s ease-in-out;
    visibility: hidden;
    white-space: nowrap;
}

/* ボタンにホバーした時にテキストを表示 */
.copy-to-clipboard-button:hover span {
    opacity: 1;
    visibility: visible;
}

/* ボタンの中にアイコンを追加 */
.copy-to-clipboard-button::before {

    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'%3E%3C/path%3E%3Crect x='8' y='2' width='8' height='4' rx='1' ry='1'%3E%3C/rect%3E%3C/svg%3E");
    
    background-repeat: no-repeat;
    background-size: contain;
    content: ""; 
    font-size: 1em;
    height: 1.2em;
    pointer-events: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1.2em;
}

/* コピー成功時にアイコンを変更（チェックマーク） */
.copy-to-clipboard-button[data-copy-state="copy-success"]::before {
    
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234caf50' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    
}

/* コピー失敗時にアイコンを変更（×印） */
.copy-to-clipboard-button[data-copy-state="copy-error"]::before {
    
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f44336' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E"); 
}

/* @page-entry pager
====================================== */

/* Add image to the pager */

/* 共通スタイル */
.page-entry .pager a.pager-link {
    background-color: hsl(216 100% 97%);
    border: 1px solid hsl(214 52% 88%);
    border-radius: 8px;
    padding: 2em 1em;
    transition: background .3s ease, transform .2s ease;
    display: flex;
    align-items: center;
    gap: .75em;
}

/* ホバー時のスタイル */
.page-entry .pager a.pager-link:hover {
    background-color: hsl(215 100% 94%);
    transform: translateY(-2px);
}

/* 画像のスタイル */
.page-entry .pager img {
    border-radius: 6px;
    height: 90px;
    object-fit: cover;
    width: 90px;
}

/* タイトルのスタイル */
.page-entry .pager .pager-title {
    color: hsl(240 14% 23%);
    display: inline-block;
    font-weight: 600;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
    -webkit-line-clamp: 3; /* 最大3行 */
    -webkit-box-orient: vertical;
}

/* 新しい記事 古い記事のスタイル */
.page-entry .pager-prev a.pager-link,
.page-entry .pager-next a.pager-link {
    flex-direction: row;
}

/* 新しい記事（左側）のスタイル */
.page-entry .pager-prev a.pager-link {
    justify-content: flex-start;
}

/* 古い記事（右側）のスタイル */
.page-entry .pager-next a.pager-link {
    justify-content: flex-end;
}

/* 新しい記事リンクの前に「«」を追加 */
.page-entry .pager-prev a.pager-link::before { 
    content: "« ";
}

/* 古い記事リンクの後に「»」を追加 */
.page-entry .pager-next a.pager-link::after { 
    content: " »";
}

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

/* Add for JavaScript */

.page-entry #top-box {
    display: none;
}

.page-entry .breadcrumb {
    margin-top: 3em;
}

@media (min-width: 768px) {
    .page-entry .breadcrumb {
        padding: 0 0 .5em;
    }
}

/* Document End
========================================================================== */
