/* Article pages (static, generated by sync/build_posts.py). Shares tokens with style.css. */
.article-page header{border-bottom:1px solid var(--line);max-width:none;padding-left:max(4.5%,calc((100% - 1320px)/2));padding-right:max(4.5%,calc((100% - 1320px)/2))}
.site-tagline{margin:0 auto 0 4px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:14px;letter-spacing:.12em;color:#4a4637;white-space:nowrap}
.post-layout{max-width:1320px;margin:0 auto;padding:28px 4.5% 10px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;align-items:start}
.post{min-width:0;background:white;border:1px solid #eae9e3;border-radius:8px;padding:34px 44px 26px}
.crumbs{font-size:12px;color:var(--muted)}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--accent);text-decoration:underline}
.crumbs span{margin:0 6px;color:#b5b3a8}
.post-title{font-size:27px;line-height:1.55;letter-spacing:.03em;margin:12px 0 12px;font-weight:750}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13px;color:var(--muted);padding-bottom:18px;border-bottom:1px solid #eeede8}
.post-meta time{margin-right:6px}
.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:3px;background:#efeee8;color:#4a4637;font-size:12px;text-decoration:none;line-height:1.6}
.chip:hover{background:#e3e1d8}
.chip span{color:#8e8c80;font-size:11px}
.chip.is-current{background:var(--ink);color:white}.chip.is-current span{color:#cfcdc2}
/* body from WordPress */
.post-body{font-size:16px;line-height:1.95;letter-spacing:.02em;margin-top:22px;overflow-wrap:anywhere}
.post-body p{margin:0 0 1.3em}
.post-body h2,.post-body h3,.post-body h4{line-height:1.5;margin:2em 0 .8em}
.post-body h2{font-size:21px;padding-left:12px;border-left:4px solid var(--accent)}
.post-body h3{font-size:18px}
.post-body figure{margin:0 0 1.4em}
.post-body img,.post-body video{max-width:100%!important;height:auto;border-radius:5px;display:block;margin:0 auto}
.post-body .wp-block-image.size-large img,.post-body .wp-block-image.size-full img{max-height:760px;width:auto}
.post-body figcaption{font-size:12px;color:var(--muted);text-align:center;margin-top:6px}


.post-body .wp-block-embed-youtube .wp-block-embed__wrapper{position:relative;aspect-ratio:16/9}
.post-body iframe{max-width:100%;border:0}
.post-body .wp-block-embed-youtube iframe{position:absolute;inset:0;width:100%;height:100%}
.post-body blockquote{margin:0 0 1.4em;padding:12px 16px;border-left:3px solid var(--line);background:#fafaf7;color:#55544d;font-size:14px}
.post-body a{color:var(--accent)}
.post-body ul,.post-body ol{padding-left:1.4em;margin:0 0 1.3em}
.post-body hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.inline-card{display:flex;gap:14px;align-items:center;margin:0 0 1.4em;padding:10px;border:1px solid var(--line);border-radius:7px;background:#fbfbf9;text-decoration:none;color:var(--ink)!important;line-height:1.6}
.inline-card:hover{background:#f3f2ed}
.inline-card img{width:120px!important;height:75px;object-fit:cover;flex-shrink:0;margin:0!important;border-radius:4px}
.inline-card span{font-size:14px;font-weight:650}
.inline-card small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.08em}
.wp-origin{margin:26px 0 0;padding-top:14px;border-top:1px solid #eeede8;text-align:right;font-size:12px}
.wp-origin a{color:var(--muted)}
/* related blocks */
.rel-block{margin-top:38px}
.rel-block h2{font-size:20px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.rel-block h2 small{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:.04em}
.rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.rel-card{display:flex;flex-direction:column;background:white;border:1px solid #eae9e3;border-radius:7px;overflow:hidden;text-decoration:none;transition:box-shadow .2s}
.rel-card:hover{box-shadow:0 8px 20px #201e130d}.rel-card:hover b{color:var(--accent)}
.rel-card img,.rel-card .noimg{width:100%;aspect-ratio:1.6;object-fit:cover;display:block;background:#e5e2da}
.rel-body{padding:10px 12px 13px}
.rel-body small{display:block;font-size:11px;color:var(--muted)}
.rel-body b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;line-height:1.6;margin-top:4px;font-weight:700}
.is-backlinks{background:#efeee8;margin-left:-16px;margin-right:-16px;padding:18px 16px 20px;border-radius:8px}
.is-backlinks .rel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.is-store .rel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:40px 0 20px}
.post-nav a{display:block;white-space:normal!important;overflow-wrap:anywhere;padding:14px 16px;border:1px solid var(--line);border-radius:7px;background:white;text-decoration:none;font-size:14px!important;line-height:1.6;font-weight:650}
.post-nav a:hover{border-color:#bdb9aa}
.post-nav small{display:block;font-size:12px;color:var(--muted);font-weight:400;margin-bottom:3px}
.post-nav .next{text-align:right}
/* sidebar */
.sidebar{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;padding-right:4px;scrollbar-width:thin}
.side-box{background:white;border:1px solid #eae9e3;border-radius:8px;padding:16px 18px;margin-bottom:16px}
.side-box h2{font-size:15px;letter-spacing:.08em;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #eeede8}
.side-box details{border-bottom:1px dashed #ecebe5}
.side-box details:last-of-type{border-bottom:0}
.side-box summary{cursor:pointer;font-size:14px;padding:6px 0;display:flex;align-items:center;list-style:none}
.side-box summary::-webkit-details-marker{display:none}
.side-box summary:before{content:"▸";color:#a6a497;font-size:11px;margin-right:7px;transition:transform .15s}
.side-box details[open]>summary:before{transform:rotate(90deg)}
.side-box summary span,.side-list a span{margin-left:auto;font-size:11px;color:#9a988c}
.side-list{list-style:none;margin:0 0 6px;padding:0 0 0 16px}
.side-list a{display:flex;font-size:13px;text-decoration:none;padding:3px 0}
.side-list a:hover{color:var(--accent)}
.side-list a[aria-current]{font-weight:700;color:var(--accent)}
.side-sub{list-style:none;padding:0 0 0 12px;margin:0 0 4px;border-left:1px solid #e6e4dc}
.side-sub a{font-size:12px;padding:2px 0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.more-tags{border:0!important;margin-top:8px}
.more-tags summary{font-size:12px;color:var(--muted)}
.more-tags summary:before{content:"＋"}
.more-tags[open] summary:before{content:"－";transform:none!important}
.article-page footer>p{font-size:15px}
@media(max-width:1100px){.post-layout{grid-template-columns:minmax(0,1fr) 260px;gap:28px}.post{padding:28px 30px}.site-tagline{display:none}.is-backlinks .rel-grid,.is-store .rel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.post-layout{grid-template-columns:minmax(0,1fr);padding-top:16px}.sidebar{position:static;max-height:none;overflow:visible;padding:0;margin-top:10px}}
@media(max-width:780px){.article-page header nav{display:none}.site-tagline{display:block;order:3;width:100%;margin:0;font-size:12px;text-align:center}}
@media(max-width:600px){.post{padding:20px 16px;border-radius:6px}
 .post-layout{padding-left:5%;padding-right:5%}
 .post-title{font-size:21px}.post-body{font-size:15px;line-height:1.9}
 .rel-grid,.is-backlinks .rel-grid,.is-store .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .rel-block h2{font-size:18px}.rel-body b{font-size:13px}
 .post-nav{grid-template-columns:minmax(0,1fr)}.post-nav .next{text-align:left}
 .inline-card img{width:90px!important;height:60px}
 .is-backlinks{margin-left:-5%;margin-right:-5%;border-radius:0;padding-left:5%;padding-right:5%}}
.post-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 0;font-size:13px;color:#55544d}
.post-facts b{font-weight:600;color:var(--muted);margin-right:6px;font-size:12px}

/* WP gallery block: same layout as shamo-rock.com (core gallery CSS, columns-default):
   1 image = full width, 2 = halves, 3+ = thirds (halves on phones); a short last row grows to fill; is-cropped crops to the row */
.post-body .wp-block-gallery{display:flex;flex-wrap:wrap;gap:16px;margin:1.4em 0;padding:0}
.post-body .wp-block-gallery>figure.wp-block-image{margin:0;flex-grow:1;width:calc((100% - 32px)/3);display:flex;flex-direction:column;position:relative}
.post-body .wp-block-gallery>figure.wp-block-image:first-child:nth-last-child(2),.post-body .wp-block-gallery>figure.wp-block-image:first-child:nth-last-child(2)~figure.wp-block-image{width:calc((100% - 16px)/2)}
.post-body .wp-block-gallery>figure.wp-block-image img{width:100%;margin:0;border-radius:5px}
.post-body .wp-block-gallery.is-cropped>figure.wp-block-image img{height:100%;flex:1 0 auto;object-fit:cover}
.post-body .wp-block-gallery>figure.wp-block-image:only-child{width:100%;align-items:center}
.post-body .wp-block-gallery>figure.wp-block-image:only-child img{width:auto;height:auto;max-height:760px;flex:none;object-fit:contain}
.post-body .wp-block-gallery figcaption{font-size:12px;color:var(--muted);text-align:center;margin-top:4px}
@media(max-width:600px){.post-body .wp-block-gallery>figure.wp-block-image,.post-body .wp-block-gallery>figure.wp-block-image:first-child:nth-last-child(2),.post-body .wp-block-gallery>figure.wp-block-image:first-child:nth-last-child(2)~figure.wp-block-image{width:calc((100% - 16px)/2)}.post-body .wp-block-gallery>figure.wp-block-image:only-child{width:100%}}

/* table of contents (generated by build_posts.py before the first H2, like the WP theme) */
.post-toc{display:block;margin:28px 0;padding:18px 22px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:14px;line-height:1.6}
.post-toc__ttl{margin:0 0 10px!important;font-weight:750;font-size:15px;letter-spacing:.08em}
.post-toc__ttl:before{content:"";display:inline-block;width:3px;height:1em;background:var(--accent);margin-right:8px;vertical-align:-2px;border-radius:2px}
.post-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.post-toc li{counter-increment:toc;margin:6px 0;padding-left:2.1em;position:relative}
.post-toc li:before{content:counters(toc,"-");position:absolute;left:0;color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}
.post-toc li li{padding-left:2.6em;font-size:13px}
.post-toc ol ol{margin-top:4px}
.post-toc a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent}
.post-toc a:hover{color:var(--accent);border-bottom-color:currentColor}
.post-toc.is-folded .is-omit{display:none}
.post-toc__more{display:block;margin:10px auto 0;font-size:12px;border-radius:20px;padding:5px 18px;background:#f3f2ed;border-color:transparent}
.post-body h2[id],.post-body h3[id]{scroll-margin-top:16px}
@media(max-width:480px){.post-toc{padding:14px 14px 12px;margin:22px 0;font-size:13.5px}.post-toc li{padding-left:1.9em}.post-toc li li{padding-left:2.4em;font-size:12.5px}}
/* reserve the photo box before lazy images load (keeps TOC anchor jumps accurate): width capped so height stays <= 760px */
.post-body .wp-block-image.size-large img[style*="--fit"],.post-body .wp-block-image.size-full img[style*="--fit"],.post-body .wp-block-gallery>figure.wp-block-image:only-child img[style*="--fit"]{width:min(100%,var(--fit));height:auto}
.post-facts-end{margin:22px 0 0;padding:10px 12px;border-top:1px solid #e6e3da;font-size:13px;line-height:1.8;color:#55544d}.post-facts-end b,.post-fact b{font-weight:600;color:var(--muted);margin-right:4px;font-size:12px}
