:root{--font-sans:system-ui, -apple-system, "Segoe UI", "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--bg:#fffdf9;--bg-elevated:#fff;--bg-subtle:#f7f2e9;--fg:#2c2723;--fg-muted:#605852;--fg-faint:#7d736c;--border:#ece5db;--border-strong:#ddd3c6;--accent:#a55811;--accent-hover:#8a480d;--accent-soft:#fdf0e2;--shadow-sm:0 1px 2px #3c2d1e0f, 0 2px 8px #3c2d1e0a;--shadow-md:0 2px 4px #3c2d1e12, 0 8px 24px #3c2d1e14;--cat:var(--accent);--cat-soft:var(--accent-soft);--radius-sm:8px;--radius:14px;--radius-lg:20px;--content-width:44rem;--wide-width:72rem;color-scheme:light}:root[data-theme=dark]{--bg:#16140f;--bg-elevated:#1e1b16;--bg-subtle:#24201a;--fg:#ece5db;--fg-muted:#b3a99d;--fg-faint:#9a9086;--border:#322c24;--border-strong:#453d33;--accent:#f0a860;--accent-hover:#f7bd82;--accent-soft:#3a2713;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 20px #0006;color-scheme:dark}[style*=--cat-l]{--cat:var(--cat-l);--cat-soft:var(--cat-soft-l)}:root[data-theme=dark] [style*=--cat-l]{--cat:var(--cat-d);--cat-soft:var(--cat-soft-d)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-feature-settings:"palt";-webkit-font-smoothing:antialiased;margin:0;font-size:16.5px;line-height:1.85;transition:background-color .2s,color .2s}a{color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent-hover)}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.layout{flex-direction:column;min-height:100dvh;display:flex}.container{width:100%;max-width:var(--content-width);margin-inline:auto;padding-inline:1.25rem}.container--wide{max-width:var(--wide-width)}main{flex:1;padding-block:2.5rem 5rem}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header__inner{align-items:center;gap:.5rem 1.25rem;padding-block:.85rem;display:flex}.site-header__brand{letter-spacing:-.01em;color:var(--fg);align-items:center;gap:.55rem;margin-inline-end:auto;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.site-header__mark{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:#fff;border-radius:9px;flex:none;place-content:center;width:30px;height:30px;font-size:.95rem;display:grid}.site-nav{gap:.35rem;font-size:.9rem;display:flex}.site-nav a{color:var(--fg-muted);border-radius:999px;padding:.3rem .65rem;text-decoration:none;transition:background-color .15s,color .15s}.site-nav a:hover{background:var(--bg-subtle);color:var(--fg)}.header-actions{align-items:center;gap:.4rem;display:flex}.icon-btn{border:1px solid var(--border);background:var(--bg-elevated);width:34px;height:34px;color:var(--fg-muted);cursor:pointer;border-radius:10px;place-content:center;padding:0;transition:all .15s;display:grid}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.lang-switch{border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg-muted);white-space:nowrap;border-radius:10px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .15s}.lang-switch:hover{border-color:var(--accent);color:var(--accent)}.icon-btn .icon-moon,:root[data-theme=dark] .icon-btn .icon-sun{display:none}:root[data-theme=dark] .icon-btn .icon-moon{display:block}@media (width<=640px){.site-nav{display:none}}.hero{text-align:center;padding:2.5rem 0 3rem}.hero__eyebrow{color:var(--accent);background:var(--accent-soft);border-radius:999px;align-items:center;gap:.45rem;margin-bottom:1.1rem;padding:.3rem .85rem;font-size:.8rem;font-weight:600;display:inline-flex}.hero__title{letter-spacing:-.02em;margin:0 0 .9rem;font-size:clamp(1.9rem,5vw,2.9rem);font-weight:800;line-height:1.3}.hero__lead{max-width:32rem;color:var(--fg-muted);word-break:auto-phrase;text-wrap:balance;margin:0 auto;font-size:1.05rem}.hero__lead span{display:inline-block}.hero__note{max-width:30rem;color:var(--fg-faint);word-break:auto-phrase;text-wrap:balance;margin:.7rem auto 0;font-size:.88rem}.hero__stats{color:var(--fg-faint);justify-content:center;gap:1.75rem;margin-top:1.75rem;font-size:.85rem;display:flex}.hero__stat strong{color:var(--fg);font-size:1.3rem;display:block}.featured{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);grid-template-columns:1.15fr 1fr;gap:0;margin-bottom:3.5rem;display:grid;overflow:hidden}.featured__media{background:var(--bg-subtle);aspect-ratio:1200/630;overflow:hidden}.featured__media img{object-fit:cover;width:100%;height:100%;display:block}.featured__body{flex-direction:column;justify-content:center;gap:.7rem;padding:1.75rem 1.9rem;display:flex}.featured__title{letter-spacing:-.015em;margin:0;font-size:1.45rem;line-height:1.45}.featured__title a{color:var(--fg);text-decoration:none}.featured__title a:hover{color:var(--accent)}.featured__desc{color:var(--fg-muted);margin:0;font-size:.93rem;line-height:1.75}@media (width<=800px){.featured{grid-template-columns:1fr}}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.section-head h2{letter-spacing:-.01em;align-items:center;gap:.5rem;margin:0;font-size:1.2rem;display:flex}.section-head h2:before{content:"";background:var(--accent);border-radius:2px;width:4px;height:1.05em}.section-head a{color:var(--fg-muted);font-size:.85rem;text-decoration:none}.section-head a:hover{color:var(--accent)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-3px)}.card__media{aspect-ratio:1200/630;background:var(--bg-subtle);border-bottom:1px solid var(--border);overflow:hidden}.card__media img{object-fit:cover;width:100%;height:100%;display:block}.cover{background:radial-gradient(circle at 78% 18%, color-mix(in srgb, var(--cat) 26%, transparent), transparent 58%), linear-gradient(135deg, var(--cat-soft), color-mix(in srgb, var(--cat-soft) 55%, var(--bg-elevated)));place-content:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.cover:before{content:"";background-image:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--cat) 12%, transparent) 0 1px, transparent 1px 11px);position:absolute;inset:0}.cover__emoji{filter:drop-shadow(0 2px 6px #0000001f);font-size:2.6rem;line-height:1;position:relative}.cover--lg .cover__emoji{font-size:4.5rem}.cover__bar{background:var(--cat);width:6px;height:100%;position:absolute;top:0;left:0}.card__body{flex-direction:column;flex:1;gap:.55rem;padding:1.1rem 1.2rem 1.3rem;display:flex}.card__title{letter-spacing:-.01em;margin:0;font-size:1.02rem;line-height:1.55}.card__title a{color:var(--fg);text-decoration:none}.card__title a:after{content:"";position:absolute;inset:0}.card__title a:hover{color:var(--accent)}.card{position:relative}.card__desc{color:var(--fg-muted);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.87rem;line-height:1.7;display:-webkit-box;overflow:hidden}.card__foot{margin-top:auto;padding-top:.6rem}.post-meta{color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:.5rem .7rem;font-size:.78rem;display:flex}.badge{background:var(--cat-soft);color:var(--cat);z-index:1;border-radius:999px;align-items:center;gap:.3rem;padding:.18rem .6rem;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.badge--draft{background:var(--bg-subtle);color:var(--fg-muted)}.tag-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tag{color:var(--fg-muted);background:var(--bg-subtle);z-index:1;border-radius:999px;padding:.15rem .65rem;font-size:.78rem;text-decoration:none;transition:all .15s;position:relative}.tag:hover{background:var(--accent-soft);color:var(--accent)}.page-title{letter-spacing:-.02em;margin-block:0 .5rem;font-size:1.75rem;line-height:1.4}.page-lead{color:var(--fg-muted);margin-block:0 2.5rem;font-size:.95rem}.article-layout{grid-template-columns:minmax(0,1fr) 15rem;align-items:start;gap:3rem;display:grid}@media (width<=1000px){.article-layout{grid-template-columns:minmax(0,1fr);gap:0}.article-aside{display:none}}.article__header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.article__title{letter-spacing:-.02em;margin:.7rem 0 .9rem;font-size:clamp(1.6rem,4vw,2.1rem);font-weight:800;line-height:1.45}.article__hero{border-radius:var(--radius);border:1px solid var(--border);aspect-ratio:1200/630;margin-bottom:2rem;overflow:hidden}.article__hero img{object-fit:cover;width:100%;height:100%;display:block}.article-aside{max-height:calc(100dvh - 8rem);font-size:.85rem;position:sticky;top:5.5rem;overflow-y:auto}.toc__title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin:0 0 .75rem;font-size:.78rem;font-weight:700}.toc__list{border-left:2px solid var(--border);margin:0;padding:0;list-style:none}.toc__list li a{color:var(--fg-muted);border-left:2px solid #0000;margin-left:-2px;padding:.3rem 0 .3rem .85rem;line-height:1.5;text-decoration:none;transition:all .15s;display:block}.toc__list li a:hover{color:var(--fg)}.toc__list li a.is-active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.toc__list li[data-depth="3"] a{padding-left:1.6rem;font-size:.8rem}.toc-mobile{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:2rem;padding:.9rem 1.15rem;font-size:.9rem}.toc-mobile summary{cursor:pointer;font-weight:600}.toc-mobile ol{margin:.75rem 0 0;padding-left:1.2rem}.toc-mobile a{color:var(--fg-muted);text-decoration:none}@media (width>=1001px){.toc-mobile{display:none}}.prose>:first-child{margin-top:0}.prose h2{letter-spacing:-.015em;border-bottom:1px solid var(--border);margin-top:3rem;padding-bottom:.4rem;scroll-margin-top:5rem;font-size:1.35rem}.prose h3{margin-top:2.25rem;scroll-margin-top:5rem;font-size:1.12rem}.prose code:not(pre code){background:var(--bg-subtle);font-size:.87em;font-family:var(--font-mono);color:var(--accent);border-radius:5px;padding:.15em .4em}.prose pre{border-radius:var(--radius);border:1px solid var(--border);padding:1.1rem 1.25rem;font-size:.87rem;line-height:1.7;overflow-x:auto}.prose blockquote{border-left:3px solid var(--accent);background:var(--bg-subtle);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--fg-muted);margin-inline:0;padding:.6rem 1.15rem}.prose blockquote p:first-child{margin-top:0}.prose blockquote p:last-child{margin-bottom:0}.prose table{border-collapse:collapse;width:100%;font-size:.9rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.55rem .8rem}.prose th{background:var(--bg-subtle);font-weight:700}.prose img{border-radius:var(--radius-sm)}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.article-footer{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.75rem}.byline{background:var(--bg-subtle);border-radius:var(--radius);color:var(--fg-muted);align-items:center;gap:.75rem;padding:.9rem 1.15rem;font-size:.85rem;display:flex}.byline__avatar{background:linear-gradient(135deg, var(--accent), var(--accent-hover));border-radius:50%;flex:none;place-content:center;width:36px;height:36px;font-size:1rem;display:grid}.post-nav{grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem;display:grid}.post-nav a{border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);padding:.9rem 1.1rem;font-size:.9rem;line-height:1.5;text-decoration:none;transition:all .15s;display:block}.post-nav a:hover{border-color:var(--accent)}.post-nav small{color:var(--fg-faint);margin-bottom:.2rem;font-size:.75rem;display:block}.post-nav__next{text-align:right}@media (width<=560px){.post-nav{grid-template-columns:1fr}.post-nav__next{text-align:left}}.search-box{margin-bottom:2rem;position:relative}.search-input{width:100%;font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);color:var(--fg);padding:.85rem 1.1rem .85rem 2.75rem;font-size:1rem}.search-input::placeholder{color:var(--fg-faint)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.search-box__icon{color:var(--fg-faint);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-box--sm{max-width:22rem;margin-bottom:1rem}.search-input--sm{padding:.6rem .9rem .6rem 2.4rem;font-size:.92rem}.search-box--sm .search-box__icon{left:.85rem}.search-status{color:var(--fg-muted);margin-bottom:1.25rem;font-size:.88rem}mark{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 .15em}.chip mark{color:inherit;text-underline-offset:.2em;background:0 0;padding:0;font-weight:800;text-decoration:underline}.filter{background:var(--bg-subtle);border:1px solid var(--border);border-radius:999px;gap:.25rem;margin-bottom:1.75rem;padding:.25rem;display:inline-flex}.filter__btn{font:inherit;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .9rem;font-size:.85rem;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.filter__btn:hover:not(:disabled){color:var(--fg)}.filter__btn:disabled{opacity:.4;cursor:not-allowed}.filter__btn[aria-pressed=true]{background:var(--bg-elevated);color:var(--accent);box-shadow:var(--shadow-sm)}[hidden]{display:none!important}.filter__count{opacity:.7;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:400}.archive-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.archive-item a{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);align-items:baseline;gap:.75rem;padding:.7rem 1rem;text-decoration:none;transition:all .15s;display:flex}.archive-item a:hover{border-color:var(--accent);background:var(--bg-subtle)}.archive-item__count{color:var(--fg-faint);margin-left:auto;font-size:.82rem}.compact-list{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.compact-list a{border-radius:var(--radius-sm);color:var(--fg);grid-template-columns:6.5rem 1fr;align-items:baseline;gap:.75rem;padding:.7rem .6rem;text-decoration:none;transition:background-color .15s;display:grid}.compact-list a:hover{background:var(--bg-subtle)}.compact-list time{color:var(--fg-faint);font-variant-numeric:tabular-nums;font-size:.8rem}@media (width<=560px){.compact-list a{grid-template-columns:1fr;gap:.15rem}}.ad{text-align:center;margin-block:2.5rem;display:block}.ad__label{letter-spacing:.08em;color:var(--fg-faint);text-transform:uppercase;margin-bottom:.4rem;font-size:.7rem;display:block}.ad .adsbygoogle{width:100%;display:block}.ad--article .adsbygoogle,.ad--list .adsbygoogle{min-height:250px}.ad--sidebar{margin-block:2rem 0}.ad--sidebar .adsbygoogle{min-height:250px}.site-footer{border-top:1px solid var(--border);color:var(--fg-muted);background:var(--bg-subtle);padding-block:2.25rem;font-size:.85rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;display:flex}.site-footer a{color:var(--fg-muted);text-decoration:none}.site-footer a:hover{color:var(--accent)}.footer-links{flex-wrap:wrap;gap:1.1rem;display:flex}.notfound{gap:2rem;max-width:34rem;display:grid}.notfound section{border-left:3px solid var(--border);padding-left:1.1rem}.notfound__head{margin:0 0 .3rem;font-weight:700}.notfound__lead{color:var(--fg-muted);margin:0 0 .6rem;font-size:.92rem}.empty{color:var(--fg-muted);background:var(--bg-subtle);border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;padding:3rem 2rem}.chip-row{flex-wrap:wrap;gap:.5rem;margin:0 0 2.5rem;padding:0;list-style:none;display:flex}.chip{background:var(--cat-soft,var(--bg-subtle));color:var(--cat,var(--fg));border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.87rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.chip:hover{border-color:currentColor}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
