:root{color-scheme:light;--color-bg:#f7f5ef;--color-paper:#fffefa;--color-surface:#eeeee6;--color-text:#17201c;--color-muted:#606b63;--color-border:#d4d7cd;--color-accent:#bb3e2e;--color-accent-soft:#f2e5dc;--font-base:-apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-display:Georgia, "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif CJK JP", serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--max-width:1240px;--reading-width:740px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem;font-size:16px}body{color:var(--color-text);background:var(--color-bg);font-family:var(--font-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.7}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none;transition:color .16s}a:hover{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}main:focus{outline:none}img,svg{max-width:100%}img{height:auto}figure{margin:0}h1,h2,h3,h4,p{text-wrap:pretty}::selection{color:var(--color-text);background:var(--color-accent-soft)}.container{width:min(calc(100% - 4rem), var(--max-width));margin-inline:auto}.visually-hidden,.screen-reader-text{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;color:var(--color-paper);background:var(--color-text);padding:.8rem 1.2rem;position:fixed;top:0;left:1rem;transform:translateY(-120%)}.skip-link:focus{color:var(--color-paper);transform:translateY(.5rem)}.site-header{border-bottom:1px solid var(--color-text)}.masthead{align-items:center;gap:2rem;min-height:110px;display:flex}.site-brand{flex-shrink:0;align-items:center;gap:.85rem;display:inline-flex}.brand-mark{background:var(--color-text);width:2.7rem;height:2.7rem;color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.08em;justify-content:center;align-items:center;font-size:1.9rem;font-weight:700;line-height:1;display:flex}.brand-mark span{color:#e37b68}.site-title{font-family:var(--font-display);letter-spacing:-.065em;font-size:2.6rem;line-height:1}.site-tagline{border-left:1px solid var(--color-border);color:var(--color-muted);margin:0;padding-left:1.5rem;font-size:.77rem;line-height:1.8}.header-links{align-items:center;gap:1.7rem;margin-left:auto;font-size:.77rem;font-weight:500;display:flex}.header-links>a{align-items:center;gap:.6rem;min-height:44px;display:inline-flex}.archive-link{border:1px solid var(--color-border);padding:.5rem 1rem}.archive-link:hover{border-color:var(--color-text)}.topic-bar{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1.5rem;min-height:55px;display:flex}.global-nav{flex-wrap:wrap;align-items:center;gap:2rem;display:flex}.global-nav a{align-items:center;min-height:54px;font-size:.82rem;font-weight:600;display:flex;position:relative}.global-nav a[aria-current=page]{color:var(--color-accent)}.global-nav a[aria-current=page]:after{content:"";background:currentColor;height:2px;position:absolute;bottom:-1px;left:0;right:0}.topic-archive-link{white-space:nowrap;font-size:.77rem}.site-menu{margin-left:auto;display:none;position:relative}.site-menu summary{cursor:pointer;align-items:center;gap:.8rem;min-height:44px;padding:.65rem 0;font-size:.77rem;font-weight:600;list-style:none;display:flex}.site-menu summary::-webkit-details-marker{display:none}.menu-lines{border-block:1px solid var(--color-text);width:19px;height:10px;display:block}.site-menu[open] .menu-lines{border-block-color:var(--color-accent)}.site-menu nav{z-index:5;background:var(--color-paper);border:1px solid var(--color-text);width:min(21rem,100vw - 2rem);max-height:calc(100dvh - 7rem);padding:.8rem 1.4rem;position:absolute;top:calc(100% + .75rem);right:0;overflow-y:auto}.site-menu nav a{border-bottom:1px solid var(--color-border);padding:.85rem 0;font-size:.9rem;display:block}.site-menu nav a:last-child{border-bottom:0}.site-menu nav a[aria-current=page]{color:var(--color-accent)}.header-swap.button{background:var(--color-accent);border-color:var(--color-accent);white-space:nowrap;padding:.6rem 1rem;font-size:.78rem}.header-swap.button:hover{background:var(--color-text);border-color:var(--color-text)}.site-main{min-height:60vh;padding-block:2rem 5rem}.kicker{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;margin:0 0 1.25rem;font-size:.7rem;font-weight:500}.section-heading{border-top:2px solid var(--color-text);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.8rem;padding-top:1.25rem;display:flex}.section-heading h2{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:700;line-height:1.5}.text-link{text-underline-offset:.3em;font-weight:500;text-decoration:underline 1px}.text-link span[aria-hidden=true]{margin-left:.35rem;text-decoration:none;display:inline-block}.section-heading .text-link{white-space:nowrap;font-size:.8rem}.button{border:1px solid var(--color-text);background:var(--color-text);min-height:44px;color:var(--color-paper);border-radius:2px;justify-content:center;align-items:center;gap:1rem;padding:.8rem 1.3rem;font-size:.85rem;font-weight:600;transition:color .16s,background-color .16s;display:inline-flex}.button:hover{color:var(--color-paper);background:var(--color-accent);border-color:var(--color-accent)}.button:active{transform:translateY(1px)}.button--plain{color:var(--color-text);border-color:var(--color-border);background:0 0}.button--plain:hover{color:var(--color-text);background:var(--color-surface);border-color:var(--color-text)}.breadcrumbs{margin-bottom:2.5rem}.breadcrumbs ol{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:0;font-size:.74rem;list-style:none;display:flex}.breadcrumbs li+li:before{content:"/";color:var(--color-border);padding-right:.5rem}.breadcrumbs a{text-underline-offset:.25em;text-decoration:underline}.breadcrumbs li:last-child{overflow-wrap:anywhere}.topic-label{color:var(--color-accent);font-size:.72rem;font-weight:600}.post-card{min-width:0}.post-card-image{background:var(--color-surface);aspect-ratio:16/10;display:block;overflow:hidden}.post-card-image img{object-fit:contain;width:100%;height:100%;display:block}.post-card-body{padding-top:1.1rem}.post-card-topics{flex-wrap:wrap;gap:.3rem .8rem;margin-bottom:.65rem;display:flex}.post-card-title{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.22rem;font-weight:600;line-height:1.65}.post-card-title a{text-underline-offset:.22em;text-decoration-thickness:1px}.post-card-title a:hover{text-decoration:underline}.post-card-description{-webkit-line-clamp:3;color:var(--color-muted);-webkit-box-orient:vertical;margin:0 0 1.1rem;font-size:.85rem;line-height:1.85;display:-webkit-box;overflow:hidden}.post-card-date{color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.71rem}.post-card--lead .post-card-image{aspect-ratio:16/9}.post-card--lead .post-card-body{padding-top:1.5rem}.post-card--lead .post-card-title{max-width:40rem;font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(1.55rem,2.3vw,2.25rem);font-weight:700;line-height:1.5}.post-card--lead .post-card-description{max-width:40rem;font-size:.9rem}.post-card--compact .post-card-body{padding-top:0}.post-card--compact .post-card-title{font-size:1.06rem;line-height:1.7}.post-card--row{border-bottom:1px solid var(--color-border);grid-template-columns:14rem minmax(0,1fr);gap:1.5rem;padding-block:1.8rem;display:grid}.post-card--row .post-card-image{aspect-ratio:16/11;align-self:start}.post-card--row .post-card-body{padding-top:0}.post-card--row .post-card-title{font-size:1.18rem}.post-card--row .post-card-description{-webkit-line-clamp:2}.post-card--row.post-card--text{grid-template-columns:minmax(0,1fr)}.archive-header{max-width:54rem;padding-block:2rem 2.7rem}.archive-header h1{font-family:var(--font-display);letter-spacing:-.045em;margin:0 0 1.3rem;font-size:clamp(2rem,4.8vw,3.8rem);font-weight:700;line-height:1.4}.archive-description{max-width:42rem;color:var(--color-muted);margin:0;font-size:.98rem;line-height:1.9}.archive-meta{color:var(--color-muted);flex-wrap:wrap;align-items:baseline;gap:1rem 2rem;margin-top:1.6rem;font-size:.78rem;display:flex}.archive-meta p{margin:0}.archive-layout{border-top:2px solid var(--color-text);grid-template-columns:minmax(0,1fr) 16.5rem;gap:3rem;display:grid}.archive-results{min-width:0}.archive-sidebar{border-left:1px solid var(--color-border);padding:2rem 0 0 2rem}.archive-sidebar h2{margin:0 0 1rem;font-size:.9rem;font-weight:600}.archive-sidebar nav{margin-bottom:2.5rem;display:grid}.archive-sidebar nav a{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.8rem;padding-block:.95rem;font-size:.8rem;display:flex}.archive-sidebar nav a[aria-current=page]{color:var(--color-accent)}.archive-sidebar p{color:var(--color-muted);margin:0 0 .8rem;font-size:.8rem;line-height:1.85}.archive-sidebar .text-link{font-size:.8rem}:is(.reading-prose,.page-content){overflow-wrap:anywhere;font-size:1.125rem;line-height:1.95}:is(.reading-prose,.page-content) :where(div,section,figure,p,ul,ol,dl){min-width:0;max-width:100%!important}:is(.reading-prose,.page-content)>:first-child{margin-top:0}:is(.reading-prose,.page-content) :where(p,ul,ol,dl){margin-block:0 1.4rem}:is(.reading-prose,.page-content) :where(h2){border-top:1px solid var(--color-border);letter-spacing:-.03em;margin:3.4rem 0 1.25rem;padding-top:1.6rem;scroll-margin-top:2rem;font-size:1.75rem;font-weight:700;line-height:1.6}:is(.reading-prose,.page-content) :where(h3){margin:2.3rem 0 1rem;scroll-margin-top:2rem;font-size:1.35rem;font-weight:600;line-height:1.65}:is(.reading-prose,.page-content) :where(h4,h5,h6){margin:1.8rem 0 .8rem;font-size:1.1rem;line-height:1.65}:is(.reading-prose,.page-content) :where(a){color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline 1px}:is(.reading-prose,.page-content) :where(a:hover){color:var(--color-text)}:is(.reading-prose,.page-content) :where(strong){font-weight:700}:is(.reading-prose,.page-content) :where(ul,ol){padding-left:1.5em}:is(.reading-prose,.page-content) :where(li){margin-block:.4rem;padding-left:.15em}:is(.reading-prose,.page-content) :where(li>ul,li>ol){margin-block:.5rem}:is(.reading-prose,.page-content) :where(){color:var(--color-muted)}:is(.reading-prose,.page-content) :where(blockquote){border-left:2px solid var(--color-accent);background:var(--color-bg);color:var(--color-muted);margin:1.8rem 0;padding:1.1rem 1.5rem;font-size:1rem;font-style:normal}:is(.reading-prose,.page-content) :where(blockquote>:last-child){margin-bottom:0}:is(.reading-prose,.page-content) :where(figure){margin:2rem 0}:is(.reading-prose,.page-content) :where(img){margin:.8rem auto;display:block;max-width:100%!important;height:auto!important}:is(.reading-prose,.page-content) :where(figcaption){color:var(--color-muted);margin-top:.7rem;font-size:.78rem;line-height:1.7}:is(.reading-prose,.page-content) :where(iframe,video){border:0;min-width:0;max-width:100%!important}:is(.reading-prose,.page-content) :where(hr){background:var(--color-border);border:0;height:1px;margin-block:2.5rem}:is(.reading-prose,.page-content) :where(code,pre){font-family:var(--font-mono);font-size:.86em}:is(.reading-prose,.page-content) :where(code){background:var(--color-surface);border-radius:2px;padding:.1em .3em}:is(.reading-prose,.page-content) :where(pre){border-radius:3px;max-width:100%;margin-block:1.5rem;padding:1.3rem;line-height:1.7;overflow-x:auto}:is(.reading-prose,.page-content) :where(pre code){font-size:inherit;background:0 0;padding:0}:is(.reading-prose,.page-content) :where(details){border:1px solid var(--color-border);margin-block:1.5rem;padding:1rem 1.25rem}:is(.reading-prose,.page-content) :where(summary){cursor:pointer;font-weight:600}:is(.reading-prose,.page-content) :where(details[open] summary){margin-bottom:1rem}.table-scroll{border:1px solid var(--color-border);scrollbar-width:thin;scrollbar-color:var(--color-muted) var(--color-bg);overscroll-behavior-inline:contain;width:100%;max-width:100%;margin-block:1.8rem;overflow-x:auto}:is(.reading-prose,.page-content) :where(table){border-collapse:collapse;width:100%;font-size:.88rem;line-height:1.8}.table-scroll table{min-width:31rem;margin:0}:is(.reading-prose,.page-content) :where(th,td){border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.8rem 1rem}:is(.reading-prose,.page-content) :where(th){background:var(--color-surface);font-weight:600}:is(.reading-prose,.page-content) :where(tr:last-child td){border-bottom:0}.turnstile-wrap{max-width:100%;overflow-x:auto}.site-footer{border-top:2px solid var(--color-text);padding-block:3rem 1.6rem}.footer-top{grid-template-columns:auto 1fr auto;align-items:center;gap:2.5rem;padding-bottom:2.4rem;display:grid}.footer-title{font-family:var(--font-display);letter-spacing:-.06em;font-size:2.75rem;line-height:1.2}.footer-title span{color:var(--color-accent)}.footer-top p{color:var(--color-muted);margin:0;font-size:.77rem;line-height:1.9}.footer-top p span{font-size:.7rem}.footer-top .text-link{font-size:.8rem}.footer-bottom{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1.5rem;padding-top:1.3rem;display:flex}.footer-nav{flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.73rem;display:flex}.footer-nav a{align-items:center;min-height:36px;display:inline-flex}.copyright{color:var(--color-muted);font-family:var(--font-mono);white-space:nowrap;margin:0;font-size:.65rem}@media (width<=1100px){.masthead{gap:1.5rem}.header-links{gap:1rem}.header-links>a:first-child{display:none}.global-nav{gap:1.4rem}.archive-layout{grid-template-columns:minmax(0,1fr) 14rem;gap:2rem}.archive-sidebar{padding-left:1.5rem}.post-card--row{grid-template-columns:11rem minmax(0,1fr)}}@media (width<=900px){.masthead{grid-template-columns:minmax(0,1fr) auto;gap:.8rem 1rem;min-height:92px;padding-block:1rem;display:grid}.masthead .site-brand{grid-area:1/1}.masthead .site-tagline{display:none}.masthead .header-swap{grid-area:2/1/auto/-1;justify-self:stretch;margin:0}.masthead .site-menu{grid-area:1/2;margin:0}.header-links,.topic-bar{display:none}.site-menu{display:block}.archive-layout{grid-template-columns:minmax(0,1fr)}.archive-sidebar{border-left:0;border-top:1px solid var(--color-border);padding:2rem 0 0}.archive-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}.footer-top{grid-template-columns:auto 1fr;gap:1.5rem 2rem}.footer-top>.text-link{grid-column:1/-1}.footer-bottom{flex-direction:column;align-items:start}}@media (width<=600px){.container{width:calc(100% - 2rem)}.masthead{gap:1rem;min-height:80px}.site-title{font-size:2.05rem}.brand-mark{width:2.2rem;height:2.2rem;font-size:1.6rem}.site-brand{gap:.6rem}.site-tagline{display:none}.site-menu summary{gap:.55rem;font-size:.7rem}.site-main{padding-block:1.25rem 3rem}.section-heading{align-items:start}.section-heading .text-link{font-size:.7rem}.breadcrumbs{margin-bottom:1.8rem}.post-card-title{font-size:1.12rem}.post-card--row{grid-template-columns:minmax(0,1fr);gap:1rem;padding-block:1.5rem}.post-card--row .post-card-image{aspect-ratio:16/9}.post-card--row .post-card-title{font-size:1.15rem}.archive-header{padding-block:.8rem 2rem}.archive-description{font-size:.9rem}.archive-sidebar nav{grid-template-columns:minmax(0,1fr)}:is(.reading-prose,.page-content){font-size:1.0625rem;line-height:1.9}:is(.reading-prose,.page-content) :where(h2){margin-top:2.7rem;font-size:1.45rem}:is(.reading-prose,.page-content) :where(h3){font-size:1.2rem}:is(.reading-prose,.page-content) :where(blockquote){padding:1rem;font-size:.95rem}:is(.reading-prose,.page-content) :where(.alignleft,.alignright){float:none!important;margin-inline:0!important}.table-scroll:before{content:"表は横にスクロールできます →";width:max-content;color:var(--color-muted);padding:.55rem .85rem;font-size:.7rem;display:block}.footer-top{grid-template-columns:minmax(0,1fr);gap:1rem;padding-bottom:1.7rem}.footer-top>.text-link{grid-column:auto}.footer-title{font-size:2.5rem}.footer-nav{gap:.2rem 1.2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
