/* <system section="theme" selected="report"> */
@charset "UTF-8";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #cccccc;margin:1em 0;padding:0}input,select{vertical-align:middle}body{font-family:Helvetica Neue,Helvetica,Arial,ヒラギノ角ゴ Pro W3,Hiragino Kaku Gothic Pro,メイリオ,Meiryo,ＭＳ Ｐゴシック,MS PGothic,sans-serif;background:transparent;color:#222}a{color:#456898}a:hover{color:#073472}.clearfix{display:block;*zoom: 1}.clearfix:after{display:block;visibility:hidden;font-size:0;height:0;clear:both;content:"."}#globalheader-container{background:#fff;border-bottom:1px solid #ccc;position:sticky;top:0}#container{width:810px;text-align:center;margin:0 auto;background:#fff;padding:0 30px}#container-inner{text-align:left}#blog-title{padding:70px 0}#title{display:inline-block;*display: inline;*zoom: 1;font-size:24px}#title a{text-decoration:none;color:#222}#blog-description{display:inline-block;*display: inline;*zoom: 1;font-size:12px;margin-left:1em}.header-image-enable #blog-title #title{padding:20px 0 0 20px}.header-image-enable #blog-title,.header-image-only #blog-title{padding:30px 0}#content-inner:after{content:".";display:block;clear:both;height:0;visibility:hidden}#wrapper{width:560px;float:left}.entry{margin-bottom:80px}.entry-header{margin-bottom:20px;position:relative}.date{font-size:13px;font-weight:700;padding-bottom:5px;border-bottom:1px solid #ccc;margin-bottom:15px}.date a{color:#000;text-decoration:none}.entry-title{margin-bottom:15px;line-height:1.3}.entry-title a{font-size:20px;color:#222;text-decoration:none}.categories{font-size:12px}.categories a{margin-right:.5em}.entry-header-menu{position:absolute;top:0;right:0;font-size:13px}.entry-footer{margin-top:20px;font-size:13px}.entry-footer-section,.social-buttons{margin-bottom:15px}.pager{font-size:14px;margin:15px 0;text-align:left;display:block;*zoom: 1}.pager:after{display:block;visibility:hidden;font-size:0;height:0;clear:both;content:"."}.pager-next,.pager-prev{display:inline-block;max-width:250px;line-height:1.5}.pager-next{float:right}.pager-prev{float:left}#footer{width:830px;margin:0 auto;text-align:center;padding:10px 20px;background:#fff;line-height:1.3;font-size:13px}#footer img{vertical-align:middle}.entry-comment{border-bottom:1px solid #dfdfdf;list-style:none;padding-bottom:15px;margin-bottom:15px}.comment-user-name .hatena-id-icon{vertical-align:middle;margin-right:.2em}.comment-user-name{margin-bottom:7px}.comment-user-name a{color:#222;font-weight:700}.comment-content{line-height:1.5em;margin-bottom:7px;word-wrap:break-word}.comment-user-name,.comment-content{font-size:14px}.comment-metadata,.comment-metadata a{color:#aaa}.leave-comment-title{font-size:13px;font-weight:700;margin:10px 0}.leave-comment-title:hover{text-decoration:underline}.entry-content{font-size:15px;line-height:1.7}.entry-content p{margin:.7em 0 1em}.entry-content img{max-width:100%}.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6{margin:1em 0 .5em;line-height:1.7}.entry-content h1{font-size:160%}.entry-content h2{font-size:150%}.entry-content h3{font-size:140%}.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{border-bottom:1px dotted #999}.entry-content ul,.entry-content ol,.entry-content dd{margin:0 0 0 1.5em;padding:0}.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6,.footnote-number{scroll-margin-top:56px}.entry blockquote{padding:10px;margin:1em 0;border:1px solid #ccc}.entry blockquote p{margin-top:0;margin-bottom:0}.entry-content table{border-collapse:collapse;border-spacing:0}.entry-content table th,.entry-content table td{border:1px solid #ddd;padding:5px 10px}.entry-content table th{background:#fafafa}pre{font-size:12px;padding:10px;border:1px solid #ccc}.entry-content a:visited{color:#aaa}a.keyword{text-decoration:none;border-bottom:1px solid #DEDEDE;color:#222}pre.lang-aa{font-size:14px;line-height:15px}.hatena-asin-detail li{line-height:1.4}#box2{width:220px;float:right;font-size:14px;word-wrap:break-word}.hatena-module{margin-bottom:30px}.hatena-module-title{font-size:15px;font-weight:700;margin-bottom:20px}.hatena-module-title a{color:#222;text-decoration:none}.hatena-module-title a:hover{text-decoration:underline}.hatena-module .profile-icon{margin-bottom:5px}.hatena-module .id{display:block;margin-bottom:5px}.profile-description{font-size:12px;margin-bottom:5px}.hatena-module-body li{list-style:none;margin-bottom:.7em}.hatena-module-body{line-height:1.5}.urllist-item{padding-bottom:10px;border-bottom:1px solid #ddd}form.search-form input{border:1px solid #ccc;vertical-align:middle}.search-form .search-module-input{width:180px;padding:3px;margin:0;font-size:12px}.search-form .search-module-button{height:23px;width:23px;border:none;text-indent:-999px;cursor:pointer;background:url(https://cdn.blog.st-hatena.com/images/theme/search_g.png?version=22d7a943bf0ec676e9f046c9000161) 50% 50% no-repeat}.page-about dt{font-size:16px;font-weight:700;border-bottom:1px solid #ccc;margin-bottom:5px;padding-bottom:2px}.page-about dd{margin-left:0;margin-bottom:30px}.page-about .entry-content img.profile-icon{height:16px;width:16px}.page-archive #main{padding:0;margin:0 auto;text-align:center}.page-archive #main-inner{font-size:14px;text-align:left}.page-archive .date{border:none;margin-bottom:10px;padding-bottom:0}.page-archive .categories{margin-bottom:10px}.page-archive .entry-title{font-size:18px;border-bottom:1px solid #ccc;padding-bottom:2px;margin-bottom:10px}.page-archive .entry-title a{color:#000;text-decoration:none}.page-archive .entry-title a:hover{text-decoration:underline}.page-archive p{line-height:1.5;margin-bottom:1em}.page-archive #main-inner section{margin-bottom:30px}.page-archive #main-inner .entry-title{font-size:14px;line-height:1.5;color:#000;text-decoration:none}.page-archive #main-inner .entry-title:hover{text-decoration:underline}.page-archive #main-inner ul{list-style:none;margin:0;padding:0}.page-archive #main-inner li{margin:0;padding:0 0 10px}.page-archive #main-inner li .categories{margin-top:10px}.breadcrumb{margin-bottom:20px;font-size:14px}

/* </system> */

/* <system section="background" selected="FFD8D8"> */
body{background:#FFD8D8;}
/* </system> */

/* ===== カスタム: ワイド表示 ===== */
@media (min-width: 900px) {
  #container {
    width: min(1200px, 92vw) !important;
  }
  #wrapper {
    width: calc(100% - 250px) !important;
  }
  #box2 {
    width: 220px !important;
  }
}

/* ===== カスタム: ダークテック テーマ ===== */
html {
  font-size: 18px !important;
}

body {
  background: radial-gradient(circle at 20% 0%, #1a1530 0%, #0c0e14 45%, #0a0b10 100%) !important;
  color: #dcdde6;
}

#container {
  background: #14161f;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 18px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.55);
  margin-top: 36px !important;
  margin-bottom: 36px !important;
  overflow: hidden;
}

a {
  color: #a99bff;
}
a:hover {
  color: #36e2e8;
}
.entry-content a {
  color: #b3a6ff !important;
  text-decoration: underline;
  text-decoration-color: rgba(179,166,255,0.4);
  text-underline-offset: 2px;
}
.entry-content a:hover {
  color: #36e2e8 !important;
  text-decoration-color: rgba(54,226,232,0.6);
}

#blog-title {
  padding: 56px 0 !important;
  position: relative;
}
#blog-title h1 {
  font-size: 2.6rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em;
}
#blog-title h1 a {
  color: #ffffff !important;
  text-shadow: 0 2px 16px rgba(0,0,0,0.7);
}
#blog-title h2 {
  font-size: 1.05rem !important;
  color: #d6d2ff !important;
  opacity: 0.85;
  text-shadow: 0 2px 10px rgba(0,0,0,0.7);
}

#main, #box2 {
  color: #dcdde6;
}

.archive-date-link, .entry-date, time {
  color: #8b8fa3 !important;
}

.entry {
  background: #181b26;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  padding: 28px 32px !important;
  margin-bottom: 28px;
  animation: fadeInUp 0.6s ease both;
  transition: border-color 0.25s ease, transform 0.25s ease;
}
.entry:hover {
  border-color: rgba(141,123,255,0.35);
}

.entry-title {
  font-size: 1.7rem !important;
  font-weight: 700 !important;
  line-height: 1.4;
}
.entry-title-link {
  color: #f1f1f8 !important;
  transition: color 0.2s ease;
}
.entry-title-link:hover {
  color: #36e2e8 !important;
}

.entry-content {
  font-size: 1.05rem !important;
  line-height: 1.9 !important;
  color: #cfd1de;
}
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 {
  color: #efeeff;
  border-left: 4px solid #8d7bff;
  padding-left: 12px;
}

.entry-content img,
.entry-content .hatena-fotolife {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(0,0,0,0.45);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.entry-content img:hover {
  transform: scale(1.02);
  box-shadow: 0 12px 36px rgba(141,123,255,0.35);
}

.entry-content pre, .entry-content code {
  background: #0e0f15 !important;
  color: #9ef0c8 !important;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.08);
}

.entry-categories {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  margin: 0 !important;
}
.entry-category-link {
  display: inline-block !important;
  background: rgba(141,123,255,0.12) !important;
  color: #ffffff !important;
  border: 1px solid rgba(141,123,255,0.3) !important;
  border-radius: 999px !important;
  padding: 2px 12px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  line-height: 1.6 !important;
}
.entry-category-link:hover {
  border-color: rgba(141,123,255,0.6) !important;
  color: #36e2e8 !important;
}

.hatena-module {
  background: #181b26;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 14px;
  padding: 18px 20px !important;
  margin-bottom: 22px;
}
.hatena-module-title {
  font-size: 1.05rem !important;
  color: #f1f1f8 !important;
  font-weight: 700 !important;
  border-bottom: 2px solid #8d7bff;
  padding-bottom: 8px;
  margin-bottom: 12px !important;
}
.hatena-module-title a {
  color: #f1f1f8 !important;
}

input[type="text"], input[type="search"] {
  background: #0e0f15 !important;
  color: #dcdde6 !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 8px !important;
}


.entry-content a[data-domain] {
  position: relative;
}
.entry-content a[data-domain]:hover::after {
  content: "\1F517  " attr(data-domain);
  position: absolute;
  left: 0;
  bottom: 100%;
  margin-bottom: 8px;
  background: #0e0f15;
  color: #9ef0c8;
  border: 1px solid rgba(141,123,255,0.4);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 0.78rem;
  white-space: nowrap;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  z-index: 20;
  pointer-events: none;
  animation: tooltipFadeIn 0.15s ease forwards;
}
@keyframes tooltipFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}


/* ===== カスタム: スマホ表示最適化 ===== */
@media (max-width: 899px) {
  #footer, #footer-inner {
    width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  #container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    margin-top: 0 !important;
    border-radius: 0 !important;
  }
  #content, #content-inner, #wrapper, #main {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  #box2 {
    float: none !important;
    width: 100% !important;
    margin-left: 0 !important;
  }
  #blog-title {
    padding: 24px 0 !important;
  }
  #blog-title h1 {
    font-size: 1.5rem !important;
  }
  #blog-title h2 {
    font-size: 0.85rem !important;
  }
  html {
    font-size: 16px !important;
  }
  .entry-title {
    font-size: 1.5rem !important;
  }
  .entry-content {
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
  }
  .entry-categories {
    gap: 6px !important;
  }
  .entry-category-link {
    font-size: 0.9rem !important;
    padding: 3px 12px !important;
  }
  .entry-content table {
    display: block !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    max-width: 100% !important;
    width: max-content !important;
  }
  .entry-content table th,
  .entry-content table td {
    white-space: nowrap !important;
  }
}


/* ===== カスタム: 表 ===== */
.entry-content table th {
  color: #1a1a2e !important;
  background: #e7e9f2 !important;
}
.entry-content table td {
  color: #cfd1de;
}

/* ===== カスタム: 目次デザイン ===== */
.entry-content .table-of-contents {
  list-style: none;
  background: #181b26;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 18px 22px !important;
  margin: 24px 0 !important;
}
.entry-content .table-of-contents::before {
  content: "目次";
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  color: #8d7bff;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(141,123,255,0.25);
}
.entry-content .table-of-contents li {
  list-style: none;
  margin: 4px 0;
  line-height: 1.6;
}
.entry-content .table-of-contents ul {
  list-style: none;
  margin: 2px 0 2px 1.1em;
  padding: 0;
}
.entry-content .table-of-contents a {
  color: #cfd1de !important;
  text-decoration: none;
  font-size: 0.92rem;
  transition: color 0.15s ease, padding-left 0.15s ease;
  display: inline-block;
}
.entry-content .table-of-contents a:hover {
  color: #36e2e8 !important;
  padding-left: 4px;
}
.entry-content .table-of-contents > li {
  font-weight: 600;
}
.entry-content .table-of-contents > li > a {
  font-size: 0.98rem;
}

/* ===== カスタム: コードブロック（シンタックスハイライト/行番号/コピー） ===== */
.entry-content pre.code {
  background: #1e1e1e !important;
  border-radius: 10px !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  margin: 1.2em 0 !important;
  padding: 1em !important;
  overflow: auto;
}
.entry-content pre.code code[class*="language-"],
.entry-content pre.code[class*="language-"] {
  color: #d4d4d4;
  text-shadow: none;
  background: none !important;
}
.entry-content .token.comment, .entry-content .token.prolog, .entry-content .token.doctype, .entry-content .token.cdata { color: #7f848e !important; }
.entry-content .token.punctuation { color: #d4d4d4 !important; }
.entry-content .token.property, .entry-content .token.tag, .entry-content .token.boolean, .entry-content .token.number, .entry-content .token.constant, .entry-content .token.symbol, .entry-content .token.deleted { color: #d19a66 !important; }
.entry-content .token.selector, .entry-content .token.attr-name, .entry-content .token.string, .entry-content .token.char, .entry-content .token.builtin, .entry-content .token.inserted { color: #CE9178 !important; }
.entry-content .token.operator, .entry-content .token.entity, .entry-content .token.url { color: #D4D4D4 !important; }
.entry-content .token.atrule, .entry-content .token.attr-value, .entry-content .token.keyword { color: #569CD6 !important; }
.entry-content .token.format-spec, .entry-content .token.interpolation, .entry-content .token.string-interpolation { color: #d4d4d4 !important; }
.entry-content .token.decorator { color: #569CD6 !important; }
.entry-content .token.function { color: #DCDCAA !important; }
.entry-content .token.class-name { color: #c678dd !important; }
.entry-content .token.regex, .entry-content .token.important, .entry-content .token.variable { color: #9CDCFE !important; }

.entry-content pre.code.line-numbers {
  position: relative;
  padding-left: 3.6em !important;
}
.entry-content .line-numbers .line-numbers-rows {
  border-right: 1px solid rgba(255,255,255,0.12) !important;
}
.entry-content .line-numbers-rows > span:before {
  color: #565a6e !important;
}

.entry-content div.code-toolbar {
  margin: 1.2em 0 !important;
}
.entry-content div.code-toolbar > pre.code {
  margin: 0 !important;
}
.entry-content div.code-toolbar > .toolbar {
  opacity: 0.85;
}
.entry-content div.code-toolbar > .toolbar .toolbar-item button {
  background: rgba(141,123,255,0.15) !important;
  color: #f1f1f8 !important;
  border: 1px solid rgba(141,123,255,0.3) !important;
  border-radius: 6px !important;
  font-size: 0.75rem !important;
  padding: 4px 10px !important;
  cursor: pointer;
}
.entry-content div.code-toolbar > .toolbar .toolbar-item button:hover {
  background: rgba(141,123,255,0.3) !important;
  color: #36e2e8 !important;
}
