/* <system section="theme" selected="17179246901369037364"> */
@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Armata&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap");
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+1+Code&display=swap");
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@700&display=swap");
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css | Minified by CookieBox26 */
html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0;}main{display:block;}h1{font-size:2em;margin:0.67em 0;}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent;}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder;}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto;}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:list-item;}template{display:none;}[hidden]{display:none;}
/*!
  Theme: Notive
  Author: Chihiro Mihara
  Responsive: yes
  Description:
    Parts of this stylesheet, specifically normalize.css, are licensed under the MIT License.
    This stylesheet is based on boilerplate.scss, which is also licensed under the MIT License.
    The rest of this stylesheet is licensed under the GPLv3.
*/
:root {
  --font-family-text:
    "Armata", "IBM Plex Sans JP",
    "Helvetica Neue", "Helvetica", "Arial", "Hiragino Kaku Gothic Pro",
    "Meiryo", "MS PGothic", sans-serif;
  --font-family-title:
    "M PLUS Rounded 1c",
    "Helvetica Neue", "Helvetica", "Arial", "Hiragino Kaku Gothic Pro",
    "Meiryo", "MS PGothic", sans-serif;
  --font-family-mono:
    "JetBrains Mono", "M PLUS 1 Code",
    "Monaco", "Consolas", "Courier New", "Courier", monospace;
  --font-weight-title: 700;
  --font-weight-header: 700;
  --color-text: #393939;
  --color-accent: #4682b4;
  --color-text-lighter-1: #747474 /* color-mix 非対応ブラウザ用 */;
  --color-text-lighter-1: color-mix(in srgb, var(--color-text), white 30%);
  --color-accent-lighter-1: #7ea8cb /* color-mix 非対応ブラウザ用 */;
  --color-accent-lighter-1: color-mix(in srgb, var(--color-accent), white 30%);
  --container-width: 850px;
  --content-margin: 0 0.75rem;
  --container-width-plus-margin: calc(var(--container-width) + 0.75rem + 0.75rem);
  --bgcolor-console: #454545;
  --bgcolor-program: #f0f0f0;
  --label-content: "目次";
  --label-reference: "参考文献";
  --label-point: "この記事の要点";
}
html {
  background-color: #fff;
}
body {
  background-color: #fff;
  letter-spacing: 0.02em;
  font-family: var(--font-family-text);
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.4;
}
a {
  color: var(--color-accent);
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}
h1 a, h1 a:hover, h1 a:visited,
h2 a, h2 a:hover, h2 a:visited,
h3 a, h3 a:hover, h3 a:visited {
  color: var(--color-text);
  text-decoration: none;
}
h4 a, h4 a:hover, h4 a:visited,
h5 a, h5 a:hover, h5 a:visited,
.entry-footer-time a, .entry-footer-subscribe a {
  color: var(--color-accent);
}
a.keyword {
  text-decoration: none;
  border-bottom: 1px dotted #d2d2d2;
  color: var(--color-text);
}
/* ----- グローバルヘッダ― ----- */
#globalheader-container {
  background: #fff;
  border-bottom: 1px solid #e3e3e3;
  color: var(--color-text);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
}
/* ----- ブログコンテナ ----- */
#container {
  margin: 0 auto;
  padding: 0 25px;
}
#container #content {
  display: block;
  *zoom: 1;
}
#container #content:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
#container-inner {
  width: 100%;
  max-width: var(--container-width-plus-margin);
  margin: 35px auto 0;
  background: #fff;
  padding-bottom: 50px;
}
.globalheader-off #container {
  padding-top: 1px;
}
#main {
  float: none;
  max-width: var(--container-width);
  margin: var(--content-margin);
}
/* ----- ブログタイトル領域 ----- */
#blog-title {
  max-width: var(--container-width);
  margin: var(--content-margin);
  padding: 0.5em 0 1.5rem;
  text-align: left;
}
#title {
  margin: 0;
  padding: 0;
  font-size: 260%;
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
}
#title a:hover {
  color: var(--color-text-lighter-1);
}
#blog-description {
  margin: 0.5rem 0 0;
  padding: 0;
  font-size: 100%;
  font-weight: normal;
}
.header-image-enable #blog-title {
  margin: 0 0 70px;
  padding: 0;
}
.header-image-enable #title {
  padding: 55px 20px 0;
}
.header-image-enable #blog-title-inner {
  -moz-border-radius-topright: 3px;
  -moz-border-radius-topleft: 3px;
  -webkit-border-top-left-radius: 3px;
  -webkit-border-top-right-radius: 3px;
}
#top-editarea {
  max-width: var(--container-width);
  margin: var(--content-margin);
  font-size: 92%;
}
#top-box {
  max-width: var(--container-width);
  margin: var(--content-margin);
  font-size: 100%;
}
.breadcrumb {
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
  font-size: 120%;
}
/* 下部マージンがないと記事間が重なる */
.entry {
  position: relative;
  margin-bottom: 135px;
}
.entry.sleeping-ads {
  padding-bottom: 2em;
}
/* ----- 記事ヘッダー ----- */
.entry-header {
  margin-bottom: 1rem;
}
.entry-title {
  font-size: 180%;
  letter-spacing: 0.035em;
  margin: 0;
  padding: 0.4rem 0 0.3rem;
  line-height: 1.25;
  border-bottom: 3px solid var(--color-text);
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-header);
}
.entry-title a {
  color: var(--color-text);
}
.entry-title a:hover {
  color: var(--color-text-lighter-1);
}
.date {
  color: var(--color-accent);
  font-size: 135%;
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-header);
  padding: 0;
}
.date a {
  text-decoration: none;
}
.date a:hover {
  color: var(--color-accent-lighter-1);
}
.date-last-updated {
  color: var(--color-accent);
  font-size: 90%;
}
.date-footer {
  font-size: 105%;
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-header);
}
.categories {
  margin: 1rem 0 1rem;
  padding: 0;
  text-align: left;
  font-size: 90%;
}
.categories a {
  margin: 0 0.2em 0 0;
  padding: 4px 7px;
  color: white;
  background-color: var(--color-accent);
  border-radius: 4px;
}
.categories a:hover {
  text-decoration: none;
  background: var(--color-accent-lighter-1);
}
.categories-header {
  margin: 0 !important;
  float: left;
  font-size: 94%;
  height: 1.8rem;
}
.entry-header-menu {
  position: absolute;
  top: 42px;
  left: -78px;
}
.entry-header-menu a {
  background: #b3b3b3;
  font-size: 88%;
  padding: 9px 14px;
  color: #fff;
}
.entry-header-menu a:hover {
  text-decoration: none;
  background: silver;
}
/* ----- 記事本文 ----- */
.entry-content {
  padding: 0;
}
.entry-content p {
  margin: 0 0 1em;
}
.entry-content img, .entry-content video {
  max-width: 100%;
}
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
  margin: 1.3em 0 0.8em;
  line-height: 1.5;
}
.entry-content h1 {
  font-size: 150%;
  padding: 0 0 0.15em 0;
  border-bottom: 2px solid var(--color-text);
}
.entry-content h2 {
  font-size: 140%;
  padding: 0 0 0.15em 0;
  border-bottom: 1px dotted var(--color-text);
}
.entry-content h3 {
  font-size: 130%;
}
.entry-content h4 {
  font-size: 120%;
}
.entry-content h5 {
  font-size: 110%;
}
.entry-content h6 {
  font-size: 100%;
}
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.entry-content .footnote-number {
  scroll-margin-top: 50px;
}
.entry-content ul,
.entry-content ol,
.entry-content dd {
  margin: 0 0 1em 0;
  padding: 0 0 0 1.75em;
}
.entry-content ul li ul,
.entry-content ol li ul,
.entry-content dd li ul,
.entry-content ul li ol,
.entry-content ol li ol,
.entry-content dd li ol {
  margin-bottom: 0;
}
.entry-content table {
  border-collapse: collapse;
  border-spacing: 0;
  margin: 1.5rem auto;
}
.entry-content table img {
  max-width: none;
}
.entry-content table th, .entry-content table td {
  border: 1px solid #ddd;
  padding: 0.4em 0.8em;
}
.entry-content table th {
  background: #f7f7f7;
}
.entry-content hr {
  border: none;
  width: 100%;
  border-top: 2px solid #ccc;
  margin: 3em 0 2rem;
}
.entry-content blockquote {
  margin: 0 0 10px;
  padding: 5px 15px 5px 5px;
  color: var(--color-text);
}
.entry-content blockquote p {
  margin-top: 0;
  margin-bottom: 0;
}
.entry-content blockquote a.keyword {
  color: var(--color-text);
  text-decoration: none;
}
.entry-content blockquote cite {
  margin: 10px 0 0;
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
.entry-content .hatena-asin-detail {
  margin: 0.5rem 0;
  border: none;
  padding: 1rem;
  background: #f0f0f0;
}
.hatena-asin-detail .hatena-asin-detail-info .asin-detail-buy {
  background: var(--color-accent);
  color: #fff;
  border-radius: 4px;
}
/* ----- ソースコード ----- */
.entry-content pre {
  font-size: 90%;
  border: 1px solid #e0e0e0;
  background: var(--bgcolor-console);
  color: var(--bgcolor-program);
  font-family: var(--font-family-mono);
  margin: 1rem 0;
  padding: 0.6em 0.9em;
  border-radius: 4px;
  white-space: pre;
  line-height: 1.4;
}
.entry-content pre.code {
  background: var(--bgcolor-program);
  color: var(--color-text);
}
.entry-content code {
  font-size: 90%;
  margin: 0 2px;
  padding: 0 4px;
  word-break: break-all;
  border: 1px solid #e0e0e0;
  background: var(--bgcolor-program);
  border-radius: 3px;
  font-family: var(--font-family-mono);
}
.entry-content pre > a,
.entry-content pre > a.keyword {
  color: var(--bgcolor-program);
}
.entry-content pre > a:hover,
.entry-content pre > a.keyword:hover {
  text-decoration: none;
}
/* シンタクスハイライト */
.synComment {
  color: #47885e;
}
.synIdentifier, .synPreProc, .synSpecial {
  color: #618ea3;
}
.synType, .synStatement {
  color: #006eb0;
}
.synConstant {
  color: #aa8840;
}
/* ----- 記事フッター ----- */
.entry-footer {
  margin: 20px 0 -80px 0;
}
.entry-footer-section {
  margin: 0 0 30px;
  color: #4d4d4d;
  color: #abb4b7;
}
.entry-footer-section .fn {
  margin: 0 2px 0 0;
}
.social-buttons, .entry-footer-html {
  margin: 20px 0 10px;
}
.hatena-star-container {
  margin: 10px 0 20px;
}
.hatena-id-link {
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
  font-size: 110%;
}
.comment-box ul {
  list-style: none;
  margin: 50px 0 30px;
  padding: 0;
  font-size: 95%;
  line-height: 1.7;
}
.comment-box li {
  padding: 20px 0 20px 70px;
  border-bottom: 1px solid #ccc;
  position: relative;
}
.comment-box li:first-child {
  border-top: 1px solid #ccc;
}
.comment-box .read-more-comments {
  padding-left: 0;
  border-bottom: none;
}
.comment-box .hatena-id-icon {
  position: absolute;
  top: 20px;
  left: 0;
  width: 50px!important;
  height: 50px!important;
  border-radius: 3px;
  -moz-background-clip: padding;
  -webkit-background-clip: padding-box;
  background-clip: padding-box;
}
.comment-user-name {
  margin: 0 0 10px;
  font-weight: 700;
}
.comment-content {
  font-size: 90%;
  margin: 0 0 10px;
  word-wrap: break-word;
}
.comment-content p {
  margin: 0 0 10px;
}
.comment-metadata {
  font-size: 88%;
  color: #abb4b7;
  margin: 20px 0 0;
}
.comment-metadata a {
  color: #999;
}
.comment-delete-button img {
  top: 18px!important;
}
.leave-comment-title, .leave-comment-title:hover {
  border-radius: 6px;
  padding: 0.6em 0.8em;
  font-size: 110%;
  background-color: var(--color-accent);
  color: #fff;
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
.leave-comment-title:hover {
  text-decoration: underline;
}
#box2 {
  float: none;
  font-size: 94%;
  margin: 0;
  width: 100%;
}
#box2-inner {
  display: block;
  *zoom: 1;
  overflow: hidden;
}
#box2-inner:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
#box2-inner .hatena-module {
  padding: 0;
  margin: 0 0.75rem 1.5rem;
  min-width: calc(50% - 1.5rem);
  max-width: calc(50% - 1.5rem);
  float: left;
}
#box2-inner .hatena-module:nth-child(3n/**/+1) {
  clear: both;
}
.hatena-module {
  text-align: left;
  margin-bottom: 60px;
}
.hatena-module-title {
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-header);
  margin: 0 0 0.75rem;
  padding: 0 0 0.25rem;
  font-size: 140%;
  border-bottom: 3px solid var(--color-text);
}
.hatena-module-title a {
  color: var(--color-text);
  text-decoration: none;
}
.hatena-module-title a:hover {
  color: var(--color-text-lighter-1);
}
.hatena-urllist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hatena-urllist li {
  padding: 0;
}
.hatena-urllist li a {
  padding: 0;
}
.hatena-urllist li a:hover {
  text-decoration: underline;
  color: var(--color-accent);
}
.urllist-title-link {
  font-size: 100%;
}
.hatena-module-profile .profile-icon {
  float: left;
  margin: 0 10px 10px 0;
  border-radius: 5px;
  -moz-background-clip: padding;
  -webkit-background-clip: padding-box;
  background-clip: padding-box;
}
.hatena-module-profile .id {
  display: block;
  font-weight: bold;
  font-size: 110%;
  margin-bottom: 5px;
  margin-top: 15px;
}
.hatena-module-profile .id a {
  padding: 0;
}
.hatena-module-profile .id a:hover {
  text-decoration: none;
  color: var(--color-accent-lighter-1);
}
.hatena-module-profile .profile-description {
  font-size: 90%;
}
.hatena-module-profile .profile-description p {
  margin-top: 0;
}
.hatena-module-search-box .search-form {
  width: 100%;
  background: #f0f0f0;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
}
.hatena-module-search-box .search-module-input {
  padding: 8px 5px;
  background: none;
  border: none;
  outline: none;
  height: 20px;
  width: 90%;
}
.hatena-module-search-box .search-module-button {
  width: 20px;
  height: 20px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill:none;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3Esearch%3C/title%3E%3Cpath d='M16.7,15l-3.4-3.3h-.1a5.4,5.4,0,0,0,.9-3.1,5.6,5.6,0,1,0-5.6,5.6,5.4,5.4,0,0,0,3.1-.9.1.1,0,0,0,.1.1L15,16.7a1.1,1.1,0,0,0,.8.3,1.6,1.6,0,0,0,.9-.3,1.4,1.4,0,0,0,0-1.7M8.5,12.3A3.8,3.8,0,0,1,4.8,8.5,3.8,3.8,0,0,1,8.5,4.7a3.9,3.9,0,0,1,3.8,3.8,3.8,3.8,0,0,1-3.8,3.8'/%3E%3Crect class='a' width='20' height='20'/%3E%3C/svg%3E") no-repeat right center;
  border: none;
  outline: none;
  text-indent: -9999px;
  position: absolute;
  top: 8px;
  right: 5px;
  opacity: .5;
  filter: alpha(opacity=50);
}
.hatena-module-search-box .search-module-button:hover {
  opacity: .85;
  filter: alpha(opacity=85);
}
.pager {
  margin: 20px 0 120px;
  padding: 20px 0;
  text-align: center;
  font-size: 80%;
}
.pager a {
  font-size: 150%;
  padding: 0 0 3px;
  color: var(--color-accent);
}
.pager a:hover {
  color: var(--color-accent);
  text-decoration: underline;
}
.pager .pager-prev {
  margin-right: 40px;
}
#footer {
  padding: 30px 0;
  text-align: center;
  line-height: 1.5;
  font-size: 80%;
  margin: auto 50px;
}
#footer p {
  margin: 0;
}
#bottom-editarea {
  max-width: var(--container-width-plus-margin);
  margin: 0 auto;
}
/* ----- アバウトページ ----- */
.page-about .entry-content {
  padding: 0;
}
.page-about dt {
  font-size: 125%;
  border-bottom: 3px solid var(--color-text);
  margin: 0 0 0.75rem;
  padding: 0 0 0.25rem;
  font-weight: bold;
  color: var(--color-text);
}
.page-about dd {
  margin-left: 0;
  margin-bottom: 40px;
}
.page-about dd:last-child {
  margin-bottom: 0;
}
/* ----- アーカイブページ ----- */
.archive-heading {
  font-size: 1.6rem !important;
  font-family: var(--font-family-title);
  font-weight: var(--font-weight-title);
}
.page-archive #main {
  margin: var(--content-margin);
  padding: 0 0 120px;
}
.page-archive #main section {
  margin: 0 0 40px;
}
.page-archive #main h1 {
  margin: 0.3rem 0;
  padding: 0 0 0.25rem;
  font-size: 128%;
  border-bottom: 3px solid var(--color-text);
}
.page-archive #main ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.page-archive #main ul li {
  border: none;
  padding: 8px 0;
  line-height: 1.5;
}
.page-archive a.entry-title-link {
  font-size: 1.4rem;
  border-bottom: none;
  color: var(--color-text);
  vertical-align: middle;
  padding: 0;
}
.page-archive a.entry-title-link:hover {
  text-decoration: none;
  color: var(--color-text-lighter-1);
}
.page-archive .categories {
  margin: 0.6rem 0;
  padding: 0;
  background: none;
  vertical-align: middle;
  display: block;
  text-align: left;
  *zoom: 1;
}
.page-archive .categories:after {
  display: block;
  visibility: hidden;
  font-size: 0;
  height: 0;
  clear: both;
  content: ".";
}
.page-archive .categories a {
  display: inline-block;
  *display: inline;
  *zoom: 1;
}
.page-archive .categories a:after {
  content: "";
  visibility: hidden;
}
.page-archive .entry-thumb {
  margin-top: 0.5rem;
}
.page-archive .entry-description {
  font-size: 94%;
}
@media (min-width: 801px) and (max-width: 1040px) {
  .entry-header-menu {
    left: 0;
    top: -35px;
  }
  #box2 .hatena-module:nth-child(3n/**/+1) {
    clear: none
  }
  #box2 .hatena-module:nth-child(odd) {
    clear: both;
  }
}
@media (max-width: 800px) {
  #globalheader-container {
    position: static;
  }
  #container {
    word-wrap: break-word;
    overflow: hidden;
  }
  #container-inner {
    margin: 5px auto 0;
  }
  #box2 {
    font-size: 96%;
  }
  #box2-inner {
    width: 100%;
  }
  #box2-inner .hatena-module {
    min-width: calc(100% - 1.5rem);
    max-width: calc(100% - 1.5rem);
    float: none;
    padding: 0;
  }
  .entry-header-menu {
    top: -30px;
    left: 0;
  }
}
@media (max-width: 480px) {
  body {
    font-size: 14px;
    background: #fff !important;
  }
  #container {
    padding: 0 5px;
  }
  #container-inner {
    margin: 0;
  }
  .entry-content {
    padding: 0;
  }
  .entry-content blockquote {
    padding: 45px 20px 20px;
    background-position: 20px 17px;
    background-size: 23px 18px;
    line-height: 1.4;
  }
  .header-image-enable #blog-title {
    margin: 0 0 50px;
  }
  #box2 {
    font-size: 100%;
  }
}
/* ----- 目次記法の強調 ----- */
ul.table-of-contents {
  margin: 1.6em 0 1.2em;
  padding: 1.2em 0.8em 1.2em 2.4em;
  border: 2px solid var(--color-text);
  border-radius: 6px;
  position: relative;
  font-size: 94%;
}
ul.table-of-contents:before {
  background-color: #fff;
  font-size: 110%;
  font-weight: bold;
  left: 0.8rem;
  padding: 0 0.5rem;
  position: absolute;
  top: -0.7rem;
  content: var(--label-content);
}
/* ----- 参考文献の強調 ----- */
/* 見出しは画面外へ */
#参考文献 {
  position: absolute;
  left: -9999px;
}
/* 参考文献の強調 (ol) */
#参考文献 + ol {
  margin: 2.6em 0 1.2em;
  padding: 1.2em 0.8em 1em 2.8em;
  border: 2px solid var(--color-text);
  border-radius: 6px;
  position: relative;
  font-size: 94%;
  counter-reset: lii;
}
#参考文献 + ol:before {
  background-color: #fff;
  font-size: 110%;
  font-weight: bold;
  left: 0.8rem;
  padding: 0 0.5rem;
  position: absolute;
  top: -0.7rem;
  content: var(--label-reference);
}
#参考文献 + ol > li {
  position: relative;
  list-style: none;
}
#参考文献 + ol > li:before {
  position: absolute;
  left: -1.9em;
  counter-increment: lii;
  content: "["counter(lii)"]";
}
/* 参考文献の強調 (dl) */
#参考文献 + dl {
  margin: 2.6em 0 1.2em;
  padding: 1.2em 0.8em 1em 1em;
  border: 2px solid var(--color-text);
  border-radius: 6px;
  position: relative;
  font-size: 94%;
  display: grid;
  grid-template-columns: auto 1fr;
}
#参考文献 + dl:before {
  background-color: #fff;
  font-size: 110%;
  font-weight: bold;
  left: 0.8em;
  padding: 0 0.5em;
  position: absolute;
  top: -0.7em;
  content: var(--label-reference);
}
#参考文献 + dl > dt {
  grid-column: 1;
}
#参考文献 + dl > dt:before {
  content: "[";
}
#参考文献 + dl > dt:after {
  content: "]";
}
#参考文献 + dl > dd {
  grid-column: 2;
  margin: 0;
  padding-left: 0.5em;
}
/* ----- 要点ボックス ----- */
ul.table-of-contents li:has(> a[href^="#notive-pointbox"]) {
  display: none;
}
[id^="notive-pointbox"] {
  position: absolute;
  left: -9999px;
}
[id^="notive-pointbox"] + p,
[id^="notive-pointbox"] + ul,
[id^="notive-pointbox"] + ol {
  background: #dedede;
  padding: 2.6em 1.2em 0.9em;
  border-radius: 0.5em;
  position: relative;
  margin-bottom: 2em;
}
[id^="notive-pointbox"] + ul,
[id^="notive-pointbox"] + ol {
  padding-left: 2.6em;
}
[id^="notive-pointbox"] + p:before,
[id^="notive-pointbox"] + ul:before,
[id^="notive-pointbox"] + ol:before {
  font-size: 105%;
  font-weight: bold;
  left: 1.2rem;
  position: absolute;
  top: 0.7rem;
  content: var(--label-point);
}

/* </system> */
:root {
  --color-accent: #2ca4b4;
}

/*!
ここから下はすべて未整理
*/
/* ----- ソースコードタイトル ----- */
div.code-title {
  position: relative;
}
div.code-title > pre {
  padding-top: 2.4em;
}
div.code-title::before {
  content: attr(data-title);
  padding: 0.3em 0.8em;
  background: #f9e18b;
  color: var(--color-text);
  font-family: var(--font-family-mono);
  font-size: 90%;
  font-weight: bold;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  border-radius: 4px 0 4px 0;
}
/* ----- 数式 ----- */
.entry-content div.math {
  font-size: 94%;
  margin: 5px 0 10px;
  padding: 10px 13px;
  border-radius: 4px;
  overflow: auto;
  text-align: center;
}
div.math-title {
  position: relative;
}
div.math-title > div.math {
  padding-top: 2.4em !important;
}
div.math-title::before {
  font-family: var(--font-family-text);
  content: attr(data-title);
  line-height: 1.5;
  padding: 0.4em 1em 0.2em;
  background: #f9e18b;
  font-size: 90%;
  font-weight: bold;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  border-radius: 4px 0 4px 0;
}
/* ----- セリフ ----- */
div.turn {
  display: flex;
  position: relative;
  margin: 8px 0;
}
div.turn > div:nth-of-type(1) {
  box-sizing: border-box;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  margin-top: 5px;
  position: relative;
  z-index: 1;
}
div.turn > div:nth-of-type(2) {
  box-sizing: border-box;
  width: calc(100% - 60px + 9px);
  border-radius: 7px;
  position: relative;
  margin-left: -9px;
  padding: 8px 12px 8px 15px;
  font-size: 95%;
}
div.turn p {
  margin: 0.9em 0 0;
}
div.turn pre, div.turn div.math {
  font-size: 93%;
}
div.turn code, div.turn .code {
  background: #fcfcfc;
}
div.turn div.math {
  background: rgba(255, 255, 255, 0.45);
}
div.kazusa > div:nth-of-type(1) {
  background-color: #ada5dd;
  background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookie-box/20240502/20240502185616.png");
  background-size: 94px;
  background-position: -17px -7px;
}
div.takumi > div:nth-of-type(1) {
  background-color: #f8de4d;
  background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookie-box/20240502/20240502185619.png");
  background-size: 93px;
  background-position: -15px -6px;
}
div.kazusa > div:nth-of-type(2) {
  background-color: #e5e4f6;
}
div.takumi > div:nth-of-type(2) {
  background-color: #fef7cb;
}
/* ----- 汎用 ----- */
.highlight {
  background: #f9e18b;
}
/* ----- 未整理 ----- */
.entry-content .hoge {
  font-size: 95%;
  margin: -0.7em 0 -0.2em 0;
  padding: 0.5em 0.7em;
  background-color: #ffffff;
  border: 1px solid #4d4d4d;
}
.mytable {
  margin-top: -0.5em;
  margin-bottom: -0.5em;
  border: 0;
}
.achv {
  font-size: 77%;
  padding: 3px 4px 2px 4px;
  margin: 0 0.4em 0 0.2em;
  border: 1px solid #4d4d4d;
}
.achv00 {
  padding-right: 3.5em;
}
.achv00::before {
  content: "新規";
}
.achv01 {
  padding-right: 2.5em;
  background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookie-box/20170115/20170115185452.png");
  background-repeat: no-repeat;
  background-position: center center;
}
.achv01::before {
  content: "進行中";
}
.achv02 {
  padding-right: 2.5em;
  background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookie-box/20170115/20170115185448.png");
  background-repeat: no-repeat;
  background-position: center center;
}
.achv02::before {
  content: "進行中";
}
.achv03 {
  padding-right: 2.5em;
  background-image: url("https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookie-box/20170115/20170115185006.png");
  background-repeat: no-repeat;
  background-position: center center;
}
.achv03::before {
  content: "進行中";
}
.achv04 {
  padding-right: 3.5em;
  background-color: #c5e0b4;
}
.achv04::before {
  content: "終了";
}
.achv0 {
  font-size: 88%;
  background-color: #eddc44;
  color: #ffffff;
  padding: 4px 5px 3px 5px;
  margin: 0 0.2em 0 0.2em;
}
.achv1 {
  font-size: 88%;
  background-color: #9fc24d;
  color: #ffffff;
  padding: 4px 5px 3px 5px;
  margin: 0 0.2em 0 0.2em;
}
.achv2 {
  font-size: 88%;
  background-color: #00ac97;
  color: #ffffff;
  padding: 4px 5px 3px 5px;
  margin: 0 0.2em 0 0.2em;
}
.achv3 {
  font-size: 88%;
  background-color: #00afcc;
  color: #ffffff;
  padding: 4px 5px 3px 5px;
  margin: 0 0.2em 0 0.2em;
}
.achv4 {
  font-size: 88%;
  background-color: #1C8ACE;
  color: #ffffff;
  padding: 4px 5px 3px 5px;
  margin: 0 0.2em 0 0.2em;
}
.memol {
  background: #4682b4;
  color: white;
  font-size: 85%;
  padding: 0.2em 0.3em 0.15em 0.3em;
  margin-left: 0.4em;
}
table.test {
  width: 100%;
}
table.test td {
  font-size: 93%;
  padding: 0.5em 0.6em 0.45em 0.6em;
  line-height: 1.2;
}
table.test th {
  width: 60px;
  min-width: 60px;
  background-color: #444444;
  color: white;
  font-weight: normal;
  font-size: 93%;
  padding: 0.2em 0.3em 0.15em 0.3em;
}
table.transparent {
  border: 0px;
}
table.transparent td {
  border: 0px;
  text-align: center;
  padding: 0.2em 0.2em 0.15em 0.2em;
}
table.transparentl {
  border: 0px;
}
table.transparentl td {
  border: 0px;
  padding: 0.2em 0.2em 0.15em 0.2em;
}
.sample-box-13 {
  border: 2px solid #4d4d4d;
  border-radius: 6px;
  margin: 1.0em 0 0.8em 0;
  padding: 0.9em 1.4em;
  position: relative;
  font-size: 94%;
}
.sample-box-13::before {
  background-color: #fff;
  color: #4d4d4d;
  content: "Recently Updated";
  letter-spacing: 0.03em;
  font-weight: bold;
  left: 0.8em;
  padding: 0 .5em;
  position: absolute;
  top: -0.85em;
  font-size: 110%;
}
div.test0304 {
  border: 1px solid #4d4d4d;
  border-radius: 5px;
  padding: 0.2em;
  text-align: center;
  margin-top: 0.5em;
  margin-bottom: 0.3em;
}
.balloon5 {
  width: 100%;
  margin: 0.6em 0;
  overflow: hidden;
}
.balloon5 .faceicon {
  float: left;
  margin-right: -85px;
  width: 80px;
}
.balloon5 .faceicon img {
  width: 100%;
  height: auto;
  border: 0;
  border-radius: 50%;
  background: #E380B3;
}
.balloon5 .chatting {
  width: 100%;
}
.says {
  display: inline-block;
  position: relative;
  margin: 0 0 4px 80px;
  padding: 8px 11px 8px 11px;
  border-radius: 8px;
  background: #F9E6F0;
}
.says:after {
  content: "";
  display: inline-block;
  position: absolute;
  top: 10px;
  left: -20px;
  border: 10px solid transparent;
  border-right: 14px solid #F9E6F0;
}
.says p {
  margin: 0;
  padding: 0;
}
.makabe .faceicon img {
  background: #99B7DC;
}
.makabe .says {
  background: #E6EDF6;
}
.makabe .says:after {
  border-right: 12px solid #E6EDF6;
}
.eri .faceicon img {
  background: #80D6DC;
}
.eri .says {
  background: #DFF5F6;
}
.eri .says:after {
  border-right: 12px solid #DFF5F6;
}
.izumi .faceicon img {
  background: #9999CC;
}
.izumi .says {
  background: #E6E6F2;
}
.izumi .says:after {
  border-right: 12px solid #E6E6F2;
}
.haruka .faceicon img {
  background: #F19598;
}
.haruka .says {
  background: #FBE5E5;
}
.haruka .says:after {
  border-right: 12px solid #FBE5E5;
}
.miki .faceicon img {
  background: #C7E878;
}
.miki .says {
  background: #ECF7D2;
}
.miki .says:after {
  border-right: 12px solid #ECF7D2;
}
.hayato .faceicon img {
  background: #FD9C7F;
}
.hayato .says {
  background: #FFE6DF;
}
.hayato .says:after {
  border-right: 12px solid #FFE6DF;
}
.jun .faceicon img {
  background: #A2ACEB;
}
.jun .says {
  background: #E4E7F9;
}
.jun .says:after {
  border-right: 12px solid #E4E7F9;
}
.ryo .faceicon img {
  background: #BFDB81;
}
.ryo .says {
  background: #E5F1CD;
}
.ryo .says:after {
  border-right: 12px solid #E5F1CD;
}
.ai .faceicon img {
  background: #F6C0D2;
}
.ai .says {
  background: #FCEAF0;
}
.ai .says:after {
  border-right: 12px solid #FCEAF0;
}
.natsuki .faceicon img {
  background: #75DDE0;
}
.natsuki .says {
  background: #DDF7F7;
}
.natsuki .says:after {
  border-right: 12px solid #DDF7F7;
}
div.says table {
  border: 1px solid #4d4d4d;
  width: 100%;
}
div.says td {
  border: 1px solid #4d4d4d;
}
div.says th {
  border: 1px solid #4d4d4d;
  background: transparent;
}
table.colorsetting {
  border: 0;
}
table.colorsetting td {
  border: 0;
  border-top: 1px dashed #4d4d4d;
  font-size: 88%;
}
table.colorsetting th {
  font-size: 88%;
  border: 0;
  background: #fff;
  border-bottom: 1px solid #4d4d4d;
}
table.colorsetting td.ctop {
  border: 0;
  font-size: 88%;
  padding-top: 0.4em;
}
.caption_box {
  position: relative;
  margin-top: 1.5em;
  margin-bottom: 1.1em;
  padding: 1.1em 1.3em 0.8em;
  border: 1px solid #4d4d4d;
}
.caption_box .caption {
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1em;
  padding: 0 0.5em;
  margin: 0;
  color: #4d4d4d;
  background-color: white;
  transform: translateY(-50%) translateX(1em);
}
.bln2 {
  width: 100%;
  margin: 0.6em 0;
  overflow: hidden;
}
.bln2 .faceicon {
  float: left;
  margin-right: -85px;
  width: 80px;
  padding-top: 0.4em;
}
.bln2 .faceicon img {
  width: 100%;
  height: auto;
  border: 0;
  border-radius: 50%;
  background: #E380B3;
}
.bln2 .chatting {
  width: 100%;
}
.org01 .faceicon img {
  background: #AAA1E2;
}
.org01 .says {
  background: #E6E4F7;
}
.org01 .says:after {
  border-right: 12px solid #E6E4F7;
}
.org02 .faceicon img {
  background: #FFE455;
}
.org02 .says {
  background: #FFF7CC;
}
.org02 .says:after {
  border-right: 12px solid #FFF7CC;
}
.urllist-item-inner {
  line-height: 1.4;
}
.ref-box, .rel-box, .con-box {
  border: 2px solid var(--color-text);
  border-radius: 6px;
  margin: 1.2em 0 1.8em;
  padding: 0.9em 1.2em 0.9em 0;
  position: relative;
  font-size: 94%;
}
.con-box {
  padding: 0.4em 0.8em 0.4em 0;
}
.ref-box::before, .rel-box::before, .con-box::before {
  background-color: #fff;
  content: "参考文献";
  font-family: var(--font-family-text);
  letter-spacing: 0.03em;
  font-weight: bold;
  left: 1em;
  padding: 0 0.5em;
  position: absolute;
  top: -0.85em;
  font-size: 110%;
}
.ref-box ol, .ref-box ul, .rel-box ol, .rel-box ul, .con-box ol, .con-box ul {
  margin: 0.3em;
}
.ref-box li p, .rel-box li p, .con-box li p {
  margin: 0.2em 0 0.2em 1.0em;
}
.rel-box {
  border: 2px dotted #4d4d4d;
}
.rel-box::before {
  content: "関連記事";
}
.rellink-box::before {
  content: "関連リンク";
}
.con-box::before {
  content: "目次";
}
div.matome-box {
  margin: -0.2em 0 1.8em 0;
  background: #f0f0f0;
}
div.matome-box table {
  margin: 0;
}
div.matome-box td {
  vertical-align: top;
}
div.matome-box td.zentai {
  border: 0;
  padding: 0.8em 1.2em 0.8em 1.2em;
}
div.matome-box td.hidari {
  border: 0;
  padding: 0.8em 0 0.8em 1.2em;
}
div.matome-box td.ue {
  border: 0;
  padding: 0.8em 1.2em 0 1.2em;
}
div.matome-box td.hidarishita {
  border: 0;
  padding: 0 0 0.8em 1.2em;
  width: 100%;
}
div.matome-box td.image {
  padding: 0 1.0em 0.4em 0;
  vertical-align: bottom;
  border: 0;
}
div.matome-box td.hidari table {
  margin: 0.5em 1.0em 1.0em 0;
}
div.matome-box td.ue table {
  margin: 0.5em 0 1.0em 0;
}
div.matome-box p {
  margin-bottom: 0.4em;
  font-weight: bold;
  font-size: 104%;
}
div.matome-box ul {
  margin: 0.4em 0;
}
div.matome-box td th {
  font-size: 96%;
  padding: 0.6em 1em;
  border: 1px solid #cccccc;
}
div.matome-box td td {
  background: white;
  font-size: 96%;
  padding: 0.6em 1em;
  border: 1px solid #cccccc;
}
.entries-access-ranking::after {
  content: "古い記事の一部についてこの欄に表示しないようにしています。";
  font-size: 88%;
  display: block;
  margin-top: 7px;
}
.entries-access-ranking-title[href="https://cookie-box.hatenablog.com/entry/2017/08/15/001805"],
.entries-access-ranking-title[href="https://cookie-box.hatenablog.com/entry/2017/04/09/093654"],
.related-entries-image-link[href="https://cookie-box.hatenablog.com/entry/2016/01/16/183705"],
a[href="https://cookie-box.hatenablog.com/archive/2016/01/16"][rel="nofollow"],
.related-entries-title[href="https://cookie-box.hatenablog.com/entry/2016/01/16/183705"] {
  display: none !important;
}
.related-entries-entry-body {
  display: none;
}
ul.kaiwa {
  padding-left: 2.1em;
}
li.kazusa {
  list-style: none;
}
li.kazusa:before {
  content: "💜 ";
  margin-left: -1.8em;
}
li.takumi {
  list-style: none;
}
li.takumi:before {
  content: "💛 ";
  margin-left: -1.8em;
}
div.intro {
  position: relative;
  float: left;
  padding-right: 0.5em;
  margin: 0;
}
li.kazusa>p {
  margin: 0.3em 0 0.3em 1em;
}
li.takumi>p {
  margin: 0.3em 0 0.3em 1em;
}
ol.ref, ol.rel {
  counter-reset: li;
  padding-left: 2em;
}
ol.rel {
  counter-reset: li;
  padding-left: 2.5em;
}
ol.ref > li, ol.rel > li {
  position: relative;
  list-style: none;
}
ol.ref > li:before, ol.rel > li:before {
  position: absolute;
  left: -2em;
  counter-increment: li;
  content: "["counter(li)"]";
}
ol.rel > li:before {
  left: -2.5em;
  content: "["counter(li, katakana)"]";
}
div.prop {
  border: 2px solid #393939;
  padding: 0.6em 0.8em;
  margin: 0.8em 0;
}
div.prop > div.header {
  font-weight: bold;
  margin-bottom: 0.5em;
}
div.algo {
  border: 2px dotted #393939;
}
div.proof {
  border: 2px dashed #393939;
}
div.ref-box > ol.ref {
  padding-left: 3.0em;
}
div.rel-box > ol.rel {
  padding-left: 3.5em;
}
div.grayquote {
  margin: 0.5em 0;
  border-left: 7px solid #e3e3e3;
  padding: 1em;
}
.box-for-video {
  position: relative;
  width: 100%;
}
.box-for-video::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}
.box-for-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.command {
  font-family: var(--font-family-mono);
  background: #fcfcfc;
  padding: 0.1em 0.5em;
}
div.says pre.code {
  background: #fcfcfc;
}
div.contents-container {
  background-color: #edf3f8;
  margin-top: 0.5em;
  padding: 0.1em 0;
  font-size: 92%;
  border-radius: 5px;
}
div.contents-container > ul {
  margin: 0.3em 0;
  padding: 0 0 0 2.7em;
}
div.matome-container {
  background-color: #f0f0f0;
  margin: 0.3em 0;
  padding: 1.0em 1.2em;
  font-size: 95%;
  border-radius: 5px;
}
div.matome-container > ul {
  margin: 0.3em 0;
  padding: 0 0 0 1.8em;
}
.owari {
  margin: 1.0em 0;
  font-size: 92%;
}
span.tag {
  font-size: 0.8em;
  background: #e9edee;
  padding: 0.1em 0.3em;
}
.h5-margin-bottom-02 h5 {
  margin-bottom: 0.2em !important;
}
.categories-header a {
  margin-left: 0.15em;
}
