@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=IBM+Plex+Mono:wght@400;500;600&display=swap");

/*
  Theme : iroi_theme2026 "PLUS" (Noto Sans JP版)
  For   : mobile+iroiro blog / https://iroi.hatenadiary.com/
  Base  : Hatena Blog custom CSS (Boilerplate 前提)
  Idea  : ブログ名の「+」を構造記号に、「iroiro」をカテゴリー色の体系に。
          見出し・本文とも Noto Sans JP に統一した版。
  Note  : はてなブログ「デザイン設定 > カスタマイズ > デザインCSS」に全文貼り付け。
          @import は必ず先頭のままにしてください。
*/

/* =========================================================
   1. Design tokens
   ---------------------------------------------------------
   ライトモード専用。色はすべてここで定義しているので、
   この :root の値を書き換えるだけで全体の印象が変わります。
   ========================================================= */
:root {
  --paper:        #fbfcfc;
  --paper-sub:    #f5f7f7;
  --paper-inset:  #f1f3f4;

  --ink:          #101418;
  --ink-2:        #545c64;
  --ink-3:        #878f97;
  --rule:         #e2e5e6;
  --rule-mid:     #c9ced1;
  --rule-strong:  #101418;

  --brand:        #0d6e38;
  --brand-deep:   #145c3a;
  --brand-tint:   #e6f3ec;

  --c-phone:      #5a3cf0;
  --c-carrier:    #0b6fa8;
  --c-pc:         #9a6600;
  --c-life:       #d32a58;
  --c-etc:        #1c7d4f;

  /* --- header nav : 6カテゴリー固有色（ブランドカラーとは独立） --- */
  --c-gadget:     #9a6600;
  --c-apple:      #3f4752;
  --c-iphone:     #0b6fa8;
  --c-android:    #1e8e3e;
  --c-galaxy:     #5a3cf0;

  --img-edge:     0 0 0 1px rgba(16, 20, 24, .08);
  --pop:          0 1px 0 var(--rule);

  --font-body:    system-ui, -apple-system, "Helvetica Neue", "Hiragino Sans",
                  "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
  --font-display: "Zen Kaku Gothic New", var(--font-body);
  --font-mono:    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --shell:        1180px;
  --gap:          56px;
  --radius:       999px;

  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .01em;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
}

img, video { max-width: 100%; height: auto; }
::selection { background: var(--brand); color: #fff; }
a { color: var(--brand); text-decoration: none; transition: color .18s ease, opacity .18s ease; }
a:hover { color: var(--brand-deep); }

.entry-content a:not(.keyword):not(.entry-see-more) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  text-decoration-color: var(--rule-mid);
}
.entry-content a:not(.keyword):not(.entry-see-more):hover { text-decoration-color: currentColor; }
a.keyword { color: inherit; border-bottom: 1px solid var(--rule-mid); }
a.keyword:hover { border-bottom-color: var(--brand); }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
#globalheader-container { background: var(--ink); color: var(--paper); }

/* PC・タブレット向け設定（2カラム） */
#container-inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: center; /* 1番目と2番目の子要素を縦中央揃えにする */
  gap: 20px;
}
/* #content は必ず全幅（nth-childではなくIDで指定し、子要素の数や
   順序が変わっても壊れないようにしています） */
#container-inner > #content {
  grid-column: 1 / -1;
}
/* グリッドの子要素は既定で min-width:auto のため縮まず、中身が長いと
   トラックを押し広げてページ全体に横スクロールを発生させます。
   「SC-54D」のような型番や長いURLが原因になりやすいので明示的に 0 に。 */
#container-inner > * { min-width: 0; }
/* SP・横向きスマホ・小型タブレット向け設定（1カラムにリセット）
   768pxではなく900pxで切り替えているのは、6個のカテゴリーリンクが
   並ぶナビとタイトルを2カラムに収めるには横幅が要るためです。
   スマホの横向き表示（900px弱になる機種が多い）でもタイトルと
   ナビが窮屈にならないよう、この余裕を持たせています。 */
@media (max-width: 900px) {
  #container-inner {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 16px;
  }
  /* 1カラムになったら右揃えをやめる。6個のリンクが右寄せのまま
     2行に折り返すと、行ごとに開始位置がずれて読みにくいため。 */
  .gnav { justify-content: flex-start; gap: 6px 16px; }
}

#container, #footer { width: 100%; max-width: var(--shell); margin: 0 auto; padding: 0 20px; }
#content { padding-top: 8px; }
#content-inner { display: flex; align-items: flex-start; gap: var(--gap); max-width: none; }
#wrapper { flex: 1 1 auto; min-width: 0; }
#main, #main-inner { max-width: 100%; }
#box2 { flex: 0 0 292px; width: 292px; }
#box2-inner { display: block; }
@media (max-width: 1023px) {
  #content-inner { display: block; }
  #box2 { width: 100%; margin-top: 72px; }
}

#blog-title { position: relative; padding: 22px 0 0; }
#blog-title-inner {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 18px;
  padding-bottom: 18px; background-position: center; background-size: cover;
}
#title { margin: 0; font-family: var(--font-display); font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; line-height: 1.2; }
#title a { color: var(--ink); }
#title a:hover { color: var(--brand); }
#blog-description { margin: 0; font-family: var(--font-mono); font-size: .72rem; font-weight: 400; letter-spacing: .06em; color: var(--ink-3); }
.header-image-enable #blog-title-inner { min-height: 120px; align-items: flex-end; }
.header-image-only #blog-title-inner { height: 120px; }
.header-image-enable #blog-title-content { padding: 12px 16px; background: var(--paper); }
@media (min-width: 769px) { #title { font-size: 1.75rem; } }

#top-editarea { font-size: .85rem; color: var(--ink-2); }
#top-editarea iframe { max-width: 100%; vertical-align: bottom; }

.gnav { display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 0; justify-content: flex-end; }
.gnav a {
  --cat: var(--ink-3);
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: .78rem; font-weight: 500; letter-spacing: .05em;
  color: var(--ink-2); padding: 3px 0; border-bottom: 1px solid transparent;
  transition: color .18s ease, border-color .18s ease;
}
.gnav a::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--cat); transition: background .18s ease; }
.gnav a:hover { color: var(--ink); border-color: var(--cat); }
.gnav a[data-cat="phone"]   { --cat: var(--c-phone); }
.gnav a[data-cat="carrier"] { --cat: var(--c-carrier); }
.gnav a[data-cat="pc"]      { --cat: var(--c-pc); }
.gnav a[data-cat="life"]    { --cat: var(--c-life); }
.gnav a[data-cat="etc"]     { --cat: var(--c-etc); }
.gnav a[data-cat="gadget"]  { --cat: var(--c-gadget); }
.gnav a[data-cat="apple"]   { --cat: var(--c-apple); }
.gnav a[data-cat="iphone"]  { --cat: var(--c-iphone); }
.gnav a[data-cat="android"] { --cat: var(--c-android); }
.gnav a[data-cat="galaxy"]  { --cat: var(--c-galaxy); }

.breadcrumb { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .04em; color: var(--ink-3); margin-bottom: 28px; }
.breadcrumb a { color: var(--ink-3); }
.breadcrumb a:hover { color: var(--brand); }

.entry { position: relative; margin: 0 0 88px; }
.entry-header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 28px; padding: 0; border: 0; }
.entry-header .date::before { content: "+"; order: 0; font-family: var(--font-mono); font-size: 1.05rem; font-weight: 500; line-height: 1; color: var(--brand); }
.customized-header { order: 4; }

.categories { order: 2; position: static; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; background: none; border-radius: 0; box-shadow: none; font-size: .72rem; }
.categories a, .archive-category-link {
  --cat: var(--c-etc);
  font-family: var(--font-mono); font-weight: 500; font-size: .7rem; letter-spacing: .04em; line-height: 1.6;
  padding: 2px 9px; border: 1px solid var(--cat); border-radius: var(--radius); color: var(--cat);
  background: transparent; white-space: nowrap; transition: background .18s ease, color .18s ease;
}
.categories a:hover, .archive-category-link:hover { background: var(--cat); border-color: var(--cat); color: #fff; }
.entry-category-link { padding: 2px 9px; }
.categories .entry-category-link:nth-child(n+2)::before, .archive-category-link:nth-child(n+2)::before { content: none; }

.categories a[href*="/Galaxy"], .archive-category-link[href*="/Galaxy"],
.categories a[href*="/iPhone"], .archive-category-link[href*="/iPhone"],
.categories a[href*="/Android"], .archive-category-link[href*="/Android"],
.categories a[href*="/Xperia"], .archive-category-link[href*="/Xperia"],
.categories a[href*="/iPad"], .archive-category-link[href*="/iPad"],
.categories a[href*="/3DS"], .archive-category-link[href*="/3DS"] { --cat: var(--c-phone); }

.categories a[href*="docomo"], .archive-category-link[href*="docomo"],
.categories a[href*="/au"], .archive-category-link[href*="/au"],
.categories a[href*="SoftBank"], .archive-category-link[href*="SoftBank"],
.categories a[href*="Y%21Mobile"], .archive-category-link[href*="Y%21Mobile"],
.categories a[href*="MVNO"], .archive-category-link[href*="MVNO"],
.categories a[href*="EMOBILE"], .archive-category-link[href*="EMOBILE"],
.categories a[href*="WILLCOM"], .archive-category-link[href*="WILLCOM"],
.categories a[href*="%E6%A5%BD%E5%A4%A9%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB"],
.archive-category-link[href*="%E6%A5%BD%E5%A4%A9%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB"] { --cat: var(--c-carrier); }

.categories a[href*="/Mac"], .archive-category-link[href*="/Mac"],
.categories a[href*="ThinkPad"], .archive-category-link[href*="ThinkPad"],
.categories a[href*="/Apple"], .archive-category-link[href*="/Apple"],
.categories a[href*="Windows%20Mobile"], .archive-category-link[href*="Windows%20Mobile"],
.categories a[href*="Firefox%20OS"], .archive-category-link[href*="Firefox%20OS"] { --cat: var(--c-pc); }

.categories a[href*="%E6%97%A5%E8%A8%98"], .archive-category-link[href*="%E6%97%A5%E8%A8%98"],
.categories a[href*="%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B"], .archive-category-link[href*="%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B"],
.categories a[href*="%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88"], .archive-category-link[href*="%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88"] { --cat: var(--c-life); }

.date { order: 1; position: static; margin: 0; padding: 0; background: none; border-radius: 0; box-shadow: none; font-family: var(--font-mono); font-size: .74rem; letter-spacing: .06em; }
.date a { color: var(--ink-3); }
.date a:hover { color: var(--ink); }
.entry-header-menu { order: 3; position: static; margin-left: auto; font-size: .75rem; }
.entry-header-menu a { color: var(--ink-3); }
.entry-title { order: 4; flex: 0 0 100%; min-width: 0; overflow-wrap: break-word; margin: 0; padding: 0; border: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.45; letter-spacing: -.01em; }
.entry-title a { color: var(--ink); }
.entry-title a:hover { color: var(--brand); }
@media (min-width: 769px) { .entry-title { font-size: 1.9rem; } }
.page-index .entry + .entry, .page-archive .entry + .entry { padding-top: 72px; border-top: 1px solid var(--rule); }
.page-archive .archive-entry {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.entry-content { font-size: 1.0625rem; line-height: 1.95; overflow-wrap: break-word; }
.entry-content > p { margin: 0 0 .5em; }

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6 {
  font-family: var(--font-display); letter-spacing: -.01em; line-height: 1.5; color: var(--ink); scroll-margin-top: 24px;
}
.entry-content h1 + *, .entry-content h2 + *, .entry-content h3 + *, .entry-content h4 + *, .entry-content h5 + *, .entry-content h6 + * { margin-top: 0; }
.entry-content h1 { margin: 3.2em 0 1.2em; padding-top: .72em; border-top: 3px solid var(--rule-strong); font-size: 1.6rem; font-weight: 900; letter-spacing: -.02em; }
.entry-content h2 { margin: 3em 0 1.1em; padding-top: .7em; border-top: 2px solid var(--rule-strong); font-size: 1.4rem; font-weight: 700; }
.entry-content h3, .entry-content h4 { position: relative; margin: 2.9em 0 1em; padding-top: .8em; border-top: 1px solid var(--rule-mid); font-weight: 700; }
.entry-content h3 { font-size: 1.3rem; }
.entry-content h4 { font-size: 1.18rem; }
.entry-content h3::before, .entry-content h4::before {
  content: "+"; position: absolute; top: 0; left: -.06em; transform: translateY(-52%);
  padding-right: .5em; background: var(--paper); font-family: var(--font-mono); font-size: .9rem; font-weight: 500; line-height: 1; color: var(--brand);
}
.entry-content h5 { display: flex; gap: .6em; margin: 2.2em 0 .7em; font-size: 1.04rem; font-weight: 700; color: var(--ink); }
.entry-content h5::before { content: ""; flex: none; width: 14px; height: 1px; margin-top: .95em; background: var(--ink-3); }
.entry-content h6 { margin: 2em 0 .6em; font-family: var(--font-mono); font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.entry-content .table-of-contents li::before { content: none; }

h4.subtitle { display: flex; gap: .5em; margin: 2.2em 0 .8em; padding: 0; border: 0; background: none; color: var(--ink); font-family: var(--font-display); font-size: 1.1rem; font-weight: 700; text-align: left; }
h4.subtitle::before { content: "+"; position: static; transform: none; flex: none; padding: 0; background: none; font-family: var(--font-mono); font-weight: 500; font-size: .92em; color: var(--brand); }

.entry-content ul, .entry-content ol { margin: 0 0 1.6em; padding-left: 1.4em; }
.entry-content li { margin-bottom: .4em; }
.entry-content ul { list-style: none; padding-left: 1.2em; }
.entry-content ul > li { position: relative; }
.entry-content ul > li::before { content: ""; position: absolute; left: -1.2em; top: .85em; width: 6px; height: 1px; background: var(--brand); }
.entry-content ul li ul, .entry-content ul li ol, .entry-content ol li ul, .entry-content ol li ol { margin-bottom: 0; }
.entry-content dl { margin: 0 0 1.6em; }
.entry-content dt { font-weight: 700; }
.entry-content dd { margin: 0 0 1em; }

.entry-content img { display: block; border-radius: 2px; box-shadow: var(--img-edge); }
.entry-content img[src*=".svg"], .entry-content .hatena-asin-detail img { box-shadow: none; }
.entry-content p > img, .entry-content p > a > img { margin-inline: auto; }
.entry-content figure { margin: 2em 0; }
.entry-content figcaption, .entry-content .caption { margin-top: .6em; font-family: var(--font-mono); font-size: .74rem; letter-spacing: .03em; color: var(--ink-3); }
.entry-content p > em:only-child { display: block; font-style: normal; font-family: var(--font-mono); font-size: .74rem; letter-spacing: .03em; color: var(--ink-3); }

.entry-content table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; margin: 0 0 2em; font-family: var(--font-mono); font-size: .82rem; line-height: 1.7; }
.entry-content table th, .entry-content table td { padding: 9px 14px; border: 0; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.entry-content table th { background: none; border-bottom: 2px solid var(--rule-strong); font-weight: 600; letter-spacing: .04em; white-space: nowrap; }

.entry-content blockquote { margin: 2em 0; padding: 0 0 0 24px; border: 0; border-left: 2px solid var(--brand); color: var(--ink-2); }
.entry-content blockquote p:first-child { margin-top: 0; }
.entry-content blockquote p:last-child { margin-bottom: 0; }
.entry-content blockquote cite { font-family: var(--font-mono); font-size: .78rem; font-style: normal; }

.entry-content pre, .entry-content code { font-family: var(--font-mono); }
.entry-content pre { margin: 0 0 2em; padding: 18px 20px; background: var(--paper-inset); border: 1px solid var(--rule); border-radius: 3px; font-size: .82rem; line-height: 1.75; white-space: pre-wrap; }
.entry-content pre > code { padding: 0; background: none; border-radius: 0; font-size: 1em; }
.entry-content code { padding: 2px 6px; background: var(--paper-inset); border-radius: 3px; font-size: .88em; }

.entry-content hr { width: 100%; height: 0; margin: 3.5em auto; border: 0; border-top: 1px solid var(--rule); position: relative; overflow: visible; }
.entry-content hr::after { content: "+"; position: absolute; left: 50%; top: -.85em; transform: translateX(-50%); padding: 0 12px; background: var(--paper); font-family: var(--font-mono); color: var(--ink-3); }

.entry-content .table-of-contents { margin: 2.6em 0 3em; padding: 22px 26px; border: 0; border-top: 2px solid var(--rule-strong); border-bottom: 1px solid var(--rule); background: var(--paper-sub); list-style: none; font-size: .95rem; line-height: 1.7; }
.entry-content .table-of-contents::before { content: "CONTENTS"; display: block; margin-bottom: 12px; font-family: var(--font-mono); font-size: .66rem; font-weight: 600; letter-spacing: .18em; color: var(--ink-3); }
.entry-content .table-of-contents li { margin: 0; padding: 0; }
.entry-content .table-of-contents > li + li { margin-top: 8px; }
.entry-content .table-of-contents a:not(.keyword) { display: inline-flex; gap: .5em; color: var(--ink); text-decoration: none; }
.entry-content .table-of-contents > li > a::before { content: "+"; flex: none; font-family: var(--font-mono); font-size: .85em; color: var(--brand); }
.entry-content .table-of-contents a:hover { color: var(--brand); }
.entry-content .table-of-contents ul { margin: 6px 0 0 1.4em; padding: 0; list-style: none; }
.entry-content .table-of-contents ul a::before { content: none; }

.entry-content strong, .entry-content b { font-weight: 700; background: linear-gradient(transparent 62%, var(--brand-tint) 62%); }
.entry-content mark { background: var(--brand-tint); color: inherit; padding: 0 .2em; }

.section-movie { position: relative; width: 100%; padding-top: 56.25%; margin: 2em 0; }
.section-movie iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

.warning { padding: 14px 18px; border: 0; border-left: 2px solid var(--c-pc); border-radius: 0; background: var(--paper-inset); color: var(--ink-2); font-size: .88rem; }

.page-entry .entry-header { margin-bottom: 40px; padding-bottom: 26px; border-bottom: 1px solid var(--rule); }
.page-entry .entry-title { font-size: 1.7rem; line-height: 1.4; letter-spacing: -.02em; }
@media (min-width: 769px) { .page-entry .entry-title { font-size: 2.15rem; } }
.entry-header .social-buttons { order: 5; flex: 0 0 100%; margin: 12px 0 0; }

.page-entry .entry-content > p:first-child:not(:has(img)),
.page-entry .entry-content > p:has(img):first-child + p { font-size: 1.14rem; line-height: 1.85; color: var(--ink); margin-bottom: 2em; }
.entry-content > p:has(img) { margin: 2.6em 0 .7em; }
.entry-content > p:has(img) + p:has(img) { margin-top: 10px; }
.entry-content > p:has(img):not(:first-child) + p:not(:has(img)) { margin-top: 0; margin-bottom: 2.4em; font-size: .92rem; line-height: 1.8; color: var(--ink-2); }
.page-entry .entry-content > p:has(img):first-child + p { color: var(--ink); }

.entry-content iframe.embed-card { display: block; width: 100% !important; max-width: 100%; margin: 1.8em 0 .4em; border: 1px solid var(--rule) !important; border-radius: 4px; background: var(--paper); }
.entry-content .hatena-citation, .entry-content cite.hatena-citation { display: block; font-family: var(--font-mono); font-size: .68rem; font-style: normal; letter-spacing: .03em; color: var(--ink-3); }
.entry-content .hatena-citation a:not(.keyword) { text-decoration: none; color: var(--ink-3); }

.entry-content .post-card { display: flex; gap: 16px; align-items: flex-start; margin: 1.8em 0; padding: 16px; border: 1px solid var(--rule); border-left: 3px solid var(--brand); border-radius: 4px; background: var(--paper-sub); color: var(--ink); text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.entry-content .post-card:hover { background: var(--paper-inset); border-color: var(--rule-mid); border-left-color: var(--brand); color: var(--ink); }
.entry-content .post-card-thumb { flex: none; width: 88px; height: 88px; margin: 0 !important; object-fit: cover; border-radius: 2px; box-shadow: var(--img-edge); }
.entry-content .post-card-body { display: block; flex: 1 1 auto; min-width: 0; }
.entry-content .post-card-date { display: block; margin-bottom: 4px; font-family: var(--font-mono); font-size: .68rem; letter-spacing: .06em; line-height: 1.4; color: var(--ink-3); }
.entry-content .post-card-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-family: var(--font-display); font-size: 1rem; font-weight: 700; line-height: 1.55; color: var(--ink); }
.entry-content .post-card:hover .post-card-title { color: var(--brand); }
.entry-content .post-card-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 5px; font-size: .82rem; line-height: 1.7; color: var(--ink-2); }
@media (max-width: 480px) {
  .entry-content .post-card { gap: 13px; padding: 13px; }
  .entry-content .post-card-thumb { width: 72px; height: 72px; }
  .entry-content .post-card-title { font-size: .93rem; }
}

.entry-content .hatena-asin-detail { display: flex; gap: 18px; align-items: flex-start; margin: 1.4em 0; padding: 16px; border: 1px solid var(--rule); border-radius: 4px; background: var(--paper-sub); }
.entry-content .hatena-asin-detail + .hatena-asin-detail { margin-top: -.4em; }
.entry-content .hatena-asin-detail-image-wrapper { flex: none; }
.entry-content .hatena-asin-detail-image { object-fit: contain; box-shadow: none; margin: 0 !important; }
.entry-content .hatena-asin-detail-info { flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; font-size: .9rem; line-height: 1.6; }
.entry-content .hatena-asin-detail-title { margin: 0 0 8px; font-family: var(--font-display); font-size: .96rem; font-weight: 700; line-height: 1.5; }
.entry-content .hatena-asin-detail-title a:not(.keyword) { color: var(--ink); text-decoration: none; }
.entry-content .hatena-asin-detail-title a:hover { color: var(--brand); }
.entry-content .hatena-asin-detail-meta, .entry-content ul.hatena-asin-detail-meta { margin: 0 0 12px; padding: 0; list-style: none; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .03em; color: var(--ink-3); }
.entry-content .hatena-asin-detail-meta li { margin: 0; padding: 0; }
.entry-content .hatena-asin-detail-meta li::before { content: none; }
.entry-content .hatena-asin-detail-meta a:not(.keyword) { color: var(--ink-3); text-decoration: none; }
.entry-content .hatena-asin-detail-foot, .entry-content .asin-detail-buy { margin: 0; font-size: .78rem; }
.entry-content .hatena-asin-detail-foot a:not(.keyword), .entry-content .asin-detail-buy a:not(.keyword) {
  display: inline-block; padding: 5px 16px; border: 1px solid var(--ink); border-radius: var(--radius);
  font-family: var(--font-mono); font-size: .72rem; letter-spacing: .06em; color: var(--ink); text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.entry-content .hatena-asin-detail-foot a:hover, .entry-content .asin-detail-buy a:hover { background: var(--ink); color: var(--paper); }
@media (max-width: 480px) {
  .entry-content .hatena-asin-detail { max-width: 100%; gap: 14px; padding: 13px; }
  .entry-content .hatena-asin-detail-image { width: 58px !important; }
}

.social-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0; list-style: none; }
.social-buttons > li, .social-buttons > div, .social-buttons > span { margin: 0 !important; padding: 0; }
.social-buttons li::before { content: none; }

.page-entry .entry-footer { margin-top: 56px; padding-top: 26px; }
.entry-footer .entry-footer-section { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-family: var(--font-mono); font-size: .74rem; letter-spacing: .04em; }
.entry-footer .author.vcard { display: inline-flex; align-items: center; gap: 6px; }
.entry-footer .hatena-star-container { margin-top: 10px; }

.pager-permalink { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 56px 0 72px; padding: 0; border: 0; }
.pager-permalink .pager-prev, .pager-permalink .pager-next { display: block; }
.pager-permalink .pager-prev::before, .pager-permalink .pager-next::before { display: block; margin-bottom: 8px; font-family: var(--font-mono); font-size: .64rem; font-weight: 600; letter-spacing: .16em; color: var(--ink-3); }
.pager-permalink .pager-prev::before { content: "PREV"; }
.pager-permalink .pager-next::before { content: "NEXT"; text-align: right; }
.pager-permalink a { display: block; height: 100%; padding: 18px 20px; border: 1px solid var(--rule); border-radius: 4px; font-family: var(--font-body); font-size: .92rem; line-height: 1.6; letter-spacing: 0; color: var(--ink); transition: border-color .2s ease; }
.pager-permalink a:hover { border-color: var(--ink); color: var(--ink); }
.pager-permalink .pager-next { text-align: right; }
.pager-permalink .pager-prev:empty, .pager-permalink .pager-next:empty { display: none; }
@media (max-width: 600px) {
  .pager-permalink { grid-template-columns: 1fr; }
  .pager-permalink .pager-next, .pager-permalink .pager-next::before { text-align: left; }
}

.entry-see-more { display: inline-flex; align-items: center; gap: .8em; max-width: none; height: auto; margin: 2em 0 0; padding: 11px 26px; border: 1px solid var(--ink); border-radius: var(--radius); background: none; box-shadow: none; color: var(--ink); font-family: var(--font-mono); font-size: .8rem; font-weight: 500; letter-spacing: .06em; line-height: 1.4; text-align: left; transition: background .2s ease, color .2s ease; }
.entry-see-more::before { content: none; }
.entry-see-more::after { content: "→"; position: static; margin: 0; }
.entry-see-more:hover { background: var(--ink); color: var(--paper); }

.pager { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 88px; padding-top: 28px; border-top: 1px solid var(--rule); font-family: var(--font-mono); font-size: .8rem; letter-spacing: .05em; }
.pager a { color: var(--ink); }
.pager a:hover { color: var(--brand); }
.pager-arrow { display: none; }

.entry-footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--rule); }
.entry-footer-section { color: var(--ink-3); font-size: .82rem; }
.entry-footer-section a { color: var(--ink-3); }
.entry-footer-section a:hover { color: var(--brand); }
.entry-footer .social-buttons { margin-bottom: 20px; }

.hatena-module-related-entries, .hatena-module-entries-access-ranking { margin-bottom: 56px; }

/* 最小トラック幅は min() で容器幅を上限にする。
   これがないと 292px のサイドバーで 320px のトラックが確保され、
   モジュールが枠からはみ出します。 */
.related-entries, .entries-access-ranking {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
  gap: 0 36px;
  list-style: none;
  margin: 0;
  padding: 0;
}
/* サイドバーでは常に1列（横並びにする幅がないため） */
#box2 .related-entries, #box2 .entries-access-ranking { grid-template-columns: 1fr; }
.hatena-module .related-entries > li, .hatena-module .entries-access-ranking > li { width: auto; margin: 0 !important; padding: 18px 0; border-bottom: 1px solid var(--rule); list-style: none; }
.hatena-module .related-entries > li::after, .hatena-module .entries-access-ranking > li::after { content: ""; display: block; clear: both; }

.related-entries-image-link, .entries-access-ranking-image-link { display: block !important; float: left !important; width: 88px; height: 88px; margin: 2px 16px 0 0 !important; overflow: hidden; border-radius: 2px; background: var(--paper-inset); }
.related-entries-image, .entries-access-ranking-image { width: 100% !important; height: 100% !important; object-fit: cover; display: block; margin: 0 !important; transition: transform .5s ease, opacity .3s ease; }
.related-entries-image-link:hover .related-entries-image, .entries-access-ranking-image-link:hover .entries-access-ranking-image { transform: scale(1.06); opacity: .9; }

.related-entries-date, .entries-access-ranking-date, .related-entries .urllist-date-link, .entries-access-ranking .urllist-date-link { display: block; margin: 0 0 3px; font-family: var(--font-mono); font-size: .68rem; letter-spacing: .06em; line-height: 1.4; color: var(--ink-3); }
.related-entries-date a, .entries-access-ranking-date a, .related-entries .urllist-date-link a, .entries-access-ranking .urllist-date-link a { color: var(--ink-3); font-size: inherit; }

.related-entries-title, .entries-access-ranking-title, .related-entries-title-link, .entries-access-ranking-title-link { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: .92rem; font-weight: 700; line-height: 1.55; color: var(--ink); }
.related-entries-title a, .entries-access-ranking-title a, .related-entries-title-link, .entries-access-ranking-title-link { color: var(--ink); }
.related-entries-title a:hover, .entries-access-ranking-title a:hover, .related-entries-title-link:hover, .entries-access-ranking-title-link:hover { color: var(--brand); }

.related-entries-description, .related-entries-snippet, .entries-access-ranking-description, .entries-access-ranking-snippet, .related-entries .urllist-entry-body, .entries-access-ranking .urllist-entry-body { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 5px 0 0; font-size: .8rem; line-height: 1.7; color: var(--ink-2); }

@media (max-width: 480px) {
  .related-entries-image-link, .entries-access-ranking-image-link { width: 72px; height: 72px; margin-right: 13px !important; }
  .related-entries-title, .entries-access-ranking-title { font-size: .88rem; }
}

.comment-box { margin: 48px 0 0; }
.comment-box .comment { list-style: none; margin: 0; padding: 0; font-size: .92rem; line-height: 1.8; }
.comment-box .entry-comment { position: relative; padding: 20px 0 20px 62px; border-bottom: 1px solid var(--rule); }
.comment-box .entry-comment:first-child { border-top: 1px solid var(--rule); }
.comment-box .hatena-id-icon { position: absolute; top: 22px; left: 0; width: 44px !important; height: 44px !important; border-radius: 50%; }
.comment-user-name { margin: 0 0 .3em; font-weight: 700; }
.comment-content { margin: 0 0 .4em; color: var(--ink); word-wrap: break-word; }
.comment-metadata { margin: 0; font-family: var(--font-mono); font-size: .72rem; color: var(--ink-3); }
.comment-metadata a { color: var(--ink-3); }
.leave-comment-title { display: inline-block; width: auto; margin: 20px 0 0; padding: 10px 26px; border: 1px solid var(--rule); border-radius: var(--radius); font-family: var(--font-mono); font-size: .8rem; letter-spacing: .05em; line-height: 1.4; color: var(--ink); }
.leave-comment-title:hover { border-color: var(--ink); }

.archive-heading, .archive-header-category { margin: 0 0 40px; padding: 0 0 20px; border-bottom: 2px solid var(--rule-strong); text-align: left; }
.archive-header-category .archive-heading-category-name { font-family: var(--font-display); font-size: 1.6rem; font-weight: 900; letter-spacing: -.02em; }

.archive-entries { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 44px 28px; margin: 0 0 72px; }
.archive-entry { width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; line-height: 1.7; }
.archive-entry-header { display: block; }
.archive-entry .categories { position: static; display: flex; margin: 10px 0 6px; }
.archive-entry .archive-date { display: block; position: static; margin: 0; }
.archive-entry .archive-date a { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .05em; color: var(--ink-3); }
.archive-entry .entry-title { margin: .3em 0 0; font-size: 1.02rem; font-weight: 700; line-height: 1.55; }
.page-archive .entry-description, .page-archive .social-buttons { display: none; }

.entry-thumb-link { display: block; overflow: hidden; border-radius: 2px; background: var(--paper-inset); order: 4;}
/* アーカイブ一覧のサムネイルは <img> ではなく背景画像を持つ <div> で
   出力されるため、object-fit ではなく background-size で制御する。
   （<img> で出力される場合も両方効くように併記） */
.archive-entry .entry-thumb {
  display: block;
  width: 100% !important;
  aspect-ratio: 16 / 10;
  height: auto !important;
  object-fit: cover;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform .5s ease, opacity .3s ease;
}
.entry-thumb-link:hover .entry-thumb { transform: scale(1.06); opacity: .9; }

.hatena-module { width: 100%; margin: 0 0 52px; padding: 0; font-size: .875rem; line-height: 1.75; }
.hatena-module-title { margin: 0 0 16px; padding: 0 0 8px; border-bottom: 2px solid var(--rule-strong); font-family: var(--font-mono); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.hatena-module-title a { color: var(--ink); }

.hatena-module-profile .profile-icon { float: none; display: block; width: 64px; height: 64px; margin: 0 0 14px; border-radius: 50%; }
.hatena-module-profile .id { display: block; font-family: var(--font-mono); font-size: .8rem; margin-bottom: .5em; }
.hatena-module-profile .id a { color: var(--ink); }
.hatena-module-profile .profile-description p { margin: 0 0 .6em; color: var(--ink-2); font-size: .84rem; }
.hatena-follow-button-box { margin-top: 12px; }
.hatena-follow-button-box .btn-twitter img { height: 12px !important; }

.hatena-urllist { list-style: none; margin: 0; padding: 0; }
.hatena-urllist li { padding: 0 0 14px; margin: 0 0 14px; border-bottom: 1px solid var(--rule); }
.hatena-urllist li:last-child { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
.hatena-urllist li a { color: var(--ink); }
.hatena-urllist li a:hover { color: var(--brand); }
.hatena-urllist .urllist-date-link a { font-family: var(--font-mono); font-size: .7rem; color: var(--ink-3); letter-spacing: .04em; }
.hatena-urllist .urllist-entry-body { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: .3em; color: var(--ink-2); font-size: .8rem; line-height: 1.7; }
.hatena-urllist .urllist-category-link { font-family: var(--font-mono); font-size: .66rem; letter-spacing: .04em; padding: 1px 7px; border: 1px solid currentColor; border-radius: var(--radius); }

.hatena-module ul, .hatena-module ol { list-style: none; margin: 0; padding: 0; }
.hatena-module li { list-style: none; }

.hatena-module-category ul { display: flex; flex-wrap: wrap; gap: 7px; }
.hatena-module-category ul li { margin: 0; padding: 0; border: 0; background: none; border-radius: 0; list-style: none; }
.hatena-module-category ul li a { display: inline-block; padding: 3px 11px; border: 1px solid var(--rule); border-radius: var(--radius); font-size: .76rem; color: var(--ink-2); transition: border-color .18s ease, color .18s ease; }
.hatena-module-category ul li a:hover { border-color: var(--ink); color: var(--ink); }

.hatena-module-search-box .search-form { display: flex; align-items: center; gap: 6px; width: 100%; margin: 0; padding: 0 0 8px; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; box-shadow: none; transition: border-color .2s ease; }
.hatena-module-search-box .search-form:focus-within { border-bottom-color: var(--ink); box-shadow: none; }
.hatena-module-search-box .search-module-input { flex: 1 1 auto; height: 28px; padding: 0; border: 0; outline: none; background: none; color: var(--ink); font-family: var(--font-body); font-size: .9rem; }
.hatena-module-search-box .search-module-input::placeholder { color: var(--ink-3); }
.hatena-module-search-box .search-module-button { width: 22px; height: 22px; margin: 0; padding: 0; border: 0; outline: none; cursor: pointer; overflow: hidden; color: transparent; opacity: .55; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%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%3C/svg%3E") no-repeat center / 18px 18px; }
.hatena-module-search-box .search-module-button:hover { opacity: 1; }

.page-about .entry-content dt { margin-bottom: .5em; padding-bottom: .3em; border-bottom: 1px solid var(--rule); font-family: var(--font-display); font-weight: 700; }
.page-about .entry-content dd { margin: 0 0 2.4em; }

#footer { margin-top: 96px; padding-top: 40px; padding-bottom: 72px; border-top: 2px solid var(--rule-strong); color: var(--ink-3); font-family: var(--font-mono); font-size: .72rem; letter-spacing: .05em; text-align: left; }
#footer::before { content: "+"; display: block; margin-bottom: 8px; font-size: 3rem; font-weight: 400; line-height: 1; color: var(--brand); }
#footer a { color: var(--ink-3); }
#footer a:hover { color: var(--ink); }
#footer p { margin: .4em 0; }
#footer img { display: none; }

@media (max-width: 768px) {
  body { font-size: 15.5px; }
  #container, #footer { padding: 0 18px; }
  .entry { margin-bottom: 64px; }
  .page-index .entry + .entry, .page-archive .entry + .entry { padding-top: 52px; }
  .entry-content { font-size: 1rem; }
  .entry-content h1 { font-size: 1.34rem; margin-top: 2.6em; }
  .entry-content h2 { font-size: 1.24rem; margin-top: 2.4em; }
  .entry-content h3 { font-size: 1.14rem; margin-top: 2.3em; }
  .entry-content h4 { font-size: 1.05rem; }
  .entry-content h5 { font-size: .98rem; }
  .entry-content h6 { font-size: .74rem; }
  .archive-entries { grid-template-columns: repeat(auto-fill, minmax(min(150px, 100%), 1fr)); gap: 32px 16px; }
  /* 関連記事は「88pxの正方形サムネ＋テキスト」の行リストなので、
     130px幅の多段組みにすると本文が入る余地がなくなる。1列に固定する。 */
  .related-entries, .entries-access-ranking { grid-template-columns: 1fr; }
  .entry-see-more { display: flex; justify-content: space-between; width: 100%; }
}