*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--black: #0a0a0a;--white: #ffffff;--gray-50: #fafafa;--gray-100: #f5f5f5;--gray-200: #e5e5e5;--gray-300: #d4d4d4;--gray-400: #a3a3a3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--accent: #c8161d;--accent-dark: #a01118;--marker: #ffe37a;--font-main: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", sans-serif;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--measure: 46rem}html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{font-family:var(--font-main);color:var(--black);background:var(--white);line-height:1.8;font-weight:400;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block;height:auto}.container{max-width:1080px;margin:0 auto;padding:0 40px}@media (max-width: 768px){.container{padding:0 24px}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-header{position:sticky;top:0;z-index:1000;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--gray-200)}.site-header__inner{max-width:1080px;margin:0 auto;padding:0 40px;height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-header__logo{display:flex;align-items:baseline;gap:12px}.site-header__logo-knot{font-weight:900;font-size:24px;letter-spacing:.08em;color:var(--accent);line-height:1}.site-header__logo-main{font-weight:700;font-size:12px;letter-spacing:.04em;color:var(--gray-600);border-left:2px solid var(--gray-200);padding-left:12px}.site-header__nav{display:flex;align-items:center;gap:28px}.site-header__nav a{font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--black);position:relative;white-space:nowrap}.site-header__nav a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--black);transition:width .4s var(--ease-out-expo)}.site-header__nav a:hover:after{width:100%}.site-header__nav a.cta{background:var(--black);color:var(--white);padding:10px 22px;font-weight:700;transition:background .3s ease}.site-header__nav a.cta:after{display:none}.site-header__nav a.cta:hover{background:var(--accent)}@media (max-width: 900px){.site-header__nav a:not(.cta){display:none}.site-header__inner{padding:0 24px}}@media (max-width: 480px){.site-header__logo-main{display:none}}.page-hero{background:var(--black);color:var(--white);padding:80px 0 72px;text-align:center}.page-hero h1{font-size:clamp(32px,6vw,52px);font-weight:900;letter-spacing:-.02em;line-height:1.2}.page-hero p{margin-top:16px;color:var(--gray-400);font-size:15px;font-weight:300}main{padding:0 0 40px}.pad{padding-top:64px}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;padding:28px 0;border-bottom:1px solid var(--gray-200)}.filter-bar a{font-size:13px;font-weight:700;padding:8px 20px;border:1px solid var(--gray-300);border-radius:999px;color:var(--gray-600);transition:all .25s ease}.filter-bar a[aria-current=true],.filter-bar a:hover{background:var(--black);border-color:var(--black);color:var(--white)}.post-list{list-style:none;display:grid;gap:0}.post-list li{border-bottom:1px solid var(--gray-200)}.post-list a.card{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:32px 0;transition:opacity .25s ease}.post-list a.card:hover{opacity:.62}.post-list .card__thumb{aspect-ratio:4 / 3;background:var(--gray-100);overflow:hidden}.post-list .card__thumb img{width:100%;height:100%;object-fit:cover}.post-list .card__meta{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--gray-400);display:flex;gap:12px;align-items:center}.post-list .card__cat{color:var(--accent)}.post-list h2{font-size:20px;font-weight:900;line-height:1.5;letter-spacing:-.01em;margin:8px 0 6px}.post-list p{font-size:14px;color:var(--gray-500);font-weight:300}@media (max-width: 640px){.post-list a.card{grid-template-columns:1fr;gap:14px}.post-list .card__thumb{aspect-ratio:16 / 9}}.empty-note{padding:64px 0;color:var(--gray-400);font-size:15px;text-align:center}.article-wrap{max-width:var(--measure);margin:0 auto;padding:56px 40px 0}@media (max-width: 768px){.article-wrap{padding:40px 24px 0}}.article-head h1{font-size:clamp(26px,4.5vw,40px);font-weight:900;line-height:1.4;letter-spacing:-.02em;text-wrap:balance}.article-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:20px;font-size:13px;color:var(--gray-500)}.article-meta time{font-variant-numeric:tabular-nums}.article-meta .cat{background:var(--black);color:var(--white);font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 12px}.article-hero{margin:32px 0 0}.article-hero img{width:100%}.toc{margin:36px 0;padding:24px 28px;background:var(--gray-50);border-left:4px solid var(--black)}.toc__label{font-size:12px;font-weight:900;letter-spacing:.12em;margin-bottom:12px}.toc ol{list-style:none;counter-reset:toc;display:grid;gap:8px}.toc li{counter-increment:toc;font-size:14px;line-height:1.6}.toc li.lv3{padding-left:20px;font-size:13px}.toc a{color:var(--gray-700)}.toc a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.toc li:before{content:counter(toc) ". ";color:var(--accent);font-weight:700}.toc li.lv3:before{content:"– "}.prose{font-size:16.5px;line-height:2;color:var(--gray-900)}.prose>*+*{margin-top:1.5em}.prose>p:first-of-type{font-size:18px}.prose h2{font-size:24px;font-weight:900;line-height:1.5;letter-spacing:-.01em;margin-top:2.8em;padding-bottom:12px;border-bottom:2px solid var(--black);scroll-margin-top:90px}.prose h3{font-size:18px;font-weight:700;line-height:1.6;margin-top:2em;padding-left:14px;border-left:4px solid var(--accent);scroll-margin-top:90px}.prose h2+h3{margin-top:1.4em}.prose a{color:var(--accent);font-weight:500;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.prose strong{font-weight:700;color:var(--black)}.prose mark,.prose .marker{background:linear-gradient(transparent 62%,var(--marker) 62%);color:inherit;padding:0 2px;font-weight:500}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin-top:.5em}.prose li::marker{color:var(--accent)}.prose ul li::marker{content:"▪ "}.prose blockquote{border-left:4px solid var(--gray-300);padding:4px 0 4px 20px;color:var(--gray-600);font-size:15px}.prose img{width:100%}.prose table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}.prose thead th{background:var(--black);color:var(--white);font-weight:700;text-align:left;padding:12px 14px;white-space:nowrap}.prose tbody td{padding:12px 14px;border-bottom:1px solid var(--gray-200);vertical-align:top}.prose tbody tr:nth-child(2n) td{background:var(--gray-50)}.prose hr{border:none;border-top:1px solid var(--gray-200);margin:2.5em 0}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--gray-100);padding:.1em .4em}.figure{margin:2.2em 0}.figure img{width:100%;background:var(--gray-100)}.figure figcaption{margin-top:10px;font-size:12.5px;color:var(--gray-500);line-height:1.7}.figure__credit{color:var(--gray-400);font-size:11.5px}.figure--placeholder{border:1px dashed var(--gray-300);background:var(--gray-50);aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--gray-500);font-size:13px}.point{margin:2.2em 0;padding:24px 28px;background:var(--gray-50);border-left:4px solid var(--accent)}.point__label{display:inline-block;background:var(--accent);color:var(--white);font-size:11px;font-weight:900;letter-spacing:.12em;padding:4px 12px;margin-bottom:12px}.point__body{font-size:15px;line-height:1.9}.point__body>*+*{margin-top:.8em}.point__body strong{color:var(--black)}.note-box{margin:2.2em 0;padding:18px 22px;background:var(--white);border:1px solid var(--gray-200);font-size:14px;color:var(--gray-600);line-height:1.9}.note-box__label{font-weight:900;color:var(--black);margin-right:8px}.cta{margin:4em auto 0;max-width:var(--measure);padding:40px;background:var(--gray-900);color:var(--white)}.cta h3{font-size:20px;font-weight:900;line-height:1.5;margin-bottom:12px}.cta p{font-size:14px;color:var(--gray-400);font-weight:300;margin-bottom:24px}.cta a.button{display:inline-flex;align-items:center;gap:12px;background:var(--accent);color:var(--white);padding:16px 36px;font-size:15px;font-weight:700;letter-spacing:.04em;transition:all .4s var(--ease-out-expo)}.cta a.button:after{content:"→";transition:transform .4s var(--ease-out-expo)}.cta a.button:hover{background:var(--accent-dark)}.cta a.button:hover:after{transform:translate(4px)}.author-card{max-width:var(--measure);margin:3em auto 0;padding:28px;border:1px solid var(--gray-200);display:flex;gap:20px}.author-card .name{font-weight:900;font-size:15px}.author-card .role{font-size:12px;color:var(--gray-500);margin-top:2px}.author-card p{font-size:13px;color:var(--gray-600);margin-top:10px;line-height:1.9}.author-card a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.doc-page{max-width:var(--measure);margin:0 auto;padding:56px 40px 0}@media (max-width: 768px){.doc-page{padding:40px 24px 0}}.doc-page h1{font-size:clamp(26px,4vw,36px);font-weight:900;letter-spacing:-.02em}.doc-page h2{font-size:18px;font-weight:900;margin-top:2.4em;padding-bottom:8px;border-bottom:2px solid var(--black);display:inline-block}.doc-page p{margin-top:1em;line-height:1.95}.doc-page ul{margin-top:1em;padding-left:1.4em}.doc-page li{margin-top:.5em}.doc-page li::marker{color:var(--accent)}.doc-page a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.site-footer{margin-top:80px;padding:64px 0 32px;background:var(--black);color:var(--white);border-top:1px solid var(--gray-800)}.site-footer__inner{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px;margin-bottom:40px}.site-footer__brand-name{font-weight:900;font-size:16px;letter-spacing:.04em}.site-footer__brand-desc{font-size:11px;color:var(--gray-500);margin-top:6px}.site-footer__links{display:flex;gap:20px;flex-wrap:wrap;font-size:12px}.site-footer__links a{color:var(--gray-300)}.site-footer__links a:hover{color:var(--white)}.site-footer__info{font-size:12px;color:var(--gray-500);line-height:1.9;text-align:right}.site-footer__copy{font-size:11px;color:var(--gray-600);text-align:center;padding-top:32px;border-top:1px solid var(--gray-800)}@media (max-width: 640px){.site-footer__inner{flex-direction:column;align-items:flex-start}.site-footer__info{text-align:left}}
