*{box-sizing:border-box}html{font-size:16px}body{margin:0;color:#575279;background:#fff;font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",YuMincho,"BIZ UDMincho",serif;line-height:1.9;letter-spacing:.02em;-webkit-text-size-adjust:100%;border-top:3px solid;border-image:linear-gradient(90deg, #b4637a, #ea9d34, #907aa9) 1}::selection{background:rgba(215,130,126,.25)}.site-header,.site-main,.site-footer{max-width:720px;margin:0 auto;padding:0 1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:1.25rem;padding-bottom:1rem}.site-title{display:inline-flex;align-items:center;gap:.45em;min-width:0;font-size:1.3rem;font-weight:600;letter-spacing:.06em;color:#575279;text-decoration:none;white-space:nowrap}@media (min-width: 560px){.site-title{font-size:1.4rem}}.site-title:hover{color:#b4637a}.site-logo{flex-shrink:0;width:1.5em;height:1.5em}.site-nav{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.site-nav a{padding:.2rem .6rem;color:#797593;text-decoration:none;white-space:nowrap;border-radius:999px;transition:background .15s,color .15s}.site-nav a:hover{color:#b4637a;background:rgba(180,99,122,.1)}.site-main{padding-top:1.5rem;padding-bottom:3rem;min-height:60vh}a{color:#b4637a;text-decoration-color:rgba(180,99,122,.35);text-underline-offset:.25em}a:hover{text-decoration-color:#b4637a}h1,h2,h3{font-weight:600;letter-spacing:.04em}.hero{padding:.5rem 0 2.5rem}.hero-tagline{margin:0 0 .6rem;color:#286983;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.85rem;letter-spacing:.08em}.hero-tagline em{font-style:normal;font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",YuMincho,"BIZ UDMincho",serif;color:#797593}.hero-title{margin:0 0 1rem;font-size:1.75rem;line-height:1.55}.hero-lead{margin:0 0 2rem;color:#797593;font-size:.98rem;max-width:38em}.hero-lead code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.88em;padding:.05em .35em;color:#b4637a;background:rgba(180,99,122,.1);border-radius:4px}.hero-terminal{background:#232136;border-radius:10px;overflow:hidden;box-shadow:0 6px 24px rgba(87,82,121,.18)}.hero-terminal-bar{display:flex;align-items:center;gap:.4rem;padding:.55rem .9rem;background:rgba(255,255,255,.04);border-bottom:1px solid #393552}.hero-terminal-bar .dot{width:.65rem;height:.65rem;border-radius:50%;background:#393552}.hero-terminal-bar .hero-terminal-title{margin-left:.5rem;color:#908caa;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.75rem}.hero-terminal-body{margin:0;padding:1rem 1.1rem 1.2rem;overflow-x:auto;color:#e0def4;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.85rem;line-height:1.9}.hero-terminal-body .t-prompt{color:#9ccfd8}.hero-terminal-body .t-pipe{color:#c4a7e7}.hero-terminal-body .t-str{color:#f6c177}.hero-terminal-body .t-num{color:#ea9a97}.home-section{margin-bottom:3rem}.home-section-title{margin:0 0 1.1rem;padding-left:.6rem;border-left:3px solid #b4637a;font-size:1.15rem}.topics{list-style:none;display:grid;grid-template-columns:1fr;gap:.9rem;padding:0;margin:0}@media (min-width: 560px){.topics{grid-template-columns:1fr 1fr}}.topic-card{padding:1.1rem 1.2rem;background:#fff;border:1px solid #e7e6e3;border-radius:10px;box-shadow:0 1px 2px rgba(87,82,121,.05)}.topic-card .topic-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-bottom:.6rem;border-radius:6px;font-size:1.05rem;font-weight:600}.topic-card:nth-child(1) .topic-icon{color:#d7827e;background:rgba(215,130,126,.12)}.topic-card:nth-child(2) .topic-icon{color:#56949f;background:rgba(86,148,159,.12)}.topic-card:nth-child(3) .topic-icon{color:#ea9d34;background:rgba(234,157,52,.12)}.topic-card:nth-child(4) .topic-icon{color:#907aa9;background:rgba(144,122,169,.12)}.topic-card h3{margin:0 0 .4rem;font-size:1rem}.topic-card p{margin:0;color:#797593;font-size:.88rem;line-height:1.8}.more-link{margin:1rem 0 0;text-align:right;font-size:.9rem}.empty-state{padding:1.5rem 1.25rem;background:#fff;border:1px dashed #e7e6e3;border-radius:10px;color:#797593;font-size:.93rem}.empty-state .empty-state-title{margin:0 0 .4rem;color:#575279;font-weight:600}.empty-state p{margin:0}.empty-state code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.88em;padding:.05em .35em;color:#b4637a;background:rgba(180,99,122,.1);border-radius:4px}.posts{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.post-item{position:relative;padding:1.1rem 1.25rem;background:#fff;border:1px solid #e7e6e3;border-left:3px solid #f4f3f1;border-radius:10px;box-shadow:0 1px 2px rgba(87,82,121,.05);transition:border-color .15s,transform .15s,box-shadow .15s}.post-item:hover{transform:translateY(-1px);border-left-color:#b4637a;box-shadow:0 4px 14px rgba(87,82,121,.12)}.post-link{font-size:1.15rem;font-weight:600;text-decoration:none;color:#575279}.post-link:hover{color:#b4637a}.post-link::after{content:"";position:absolute;inset:0}.post-date{display:block;margin-top:.25rem;color:#797593;font-size:.8rem;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-variant-numeric:tabular-nums}.post-desc{margin:.5rem 0 0;color:#797593;font-size:.95rem}.post-tags{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:.6rem 0 0;position:relative;z-index:1}.post-tags li a{display:inline-block;font-size:.75rem;padding:.1rem .6rem;color:#b4637a;background:rgba(180,99,122,.1);border-radius:999px;text-decoration:none;transition:background .15s}.post-tags li a::before{content:"#";opacity:.6}.post-tags li a:hover{background:rgba(180,99,122,.18)}.post-header{margin-bottom:2rem}.post-header h1{margin-bottom:.4rem;font-size:1.7rem;line-height:1.55}.post-content h2{margin-top:2.75rem;padding-left:.6rem;border-left:3px solid #b4637a;border-bottom:none;font-size:1.3rem;line-height:1.5}.post-content h3{margin-top:2rem;font-size:1.1rem}.post-content h3::before{content:"##";margin-right:.4em;color:#56949f;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.85em}.post-content img{max-width:100%;height:auto;border-radius:8px;border:1px solid #e7e6e3}.post-content blockquote{margin:1.5rem 0;padding:.6rem 1rem;color:#797593;background:#fff;border-left:3px solid #ea9d34;border-radius:0 8px 8px 0}.post-content blockquote p{margin:.25rem 0}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 0 0 1px #e7e6e3}.post-content th{background:rgba(234,157,52,.08);font-size:.9rem}.post-content th,.post-content td{padding:.45rem .75rem;border:1px solid #e7e6e3;text-align:left}.post-content tr:nth-child(even) td{background:rgba(87,82,121,.03)}.post-content code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:.88em;padding:.1em .4em;color:#b4637a;background:rgba(180,99,122,.1);border-radius:4px}.post-content pre{position:relative;padding:1.1rem 1rem;margin:1.5rem 0;overflow-x:auto;border-radius:10px;font-size:.85rem;line-height:1.65;box-shadow:0 4px 16px rgba(87,82,121,.18)}.post-content pre code{padding:0;color:inherit;background:none;font-size:inherit}.post-content pre code[data-lang]::before{content:attr(data-lang);position:absolute;top:0;right:0;padding:.1rem .7rem;color:#9ccfd8;font-size:.7rem;letter-spacing:.05em;background:rgba(156,207,216,.12);border-radius:0 10px 0 8px}.post-content hr{margin:2.5rem auto;border:none;height:1px;background:linear-gradient(90deg, rgba(0,0,0,0), #e7e6e3 20%, #e7e6e3 80%, rgba(0,0,0,0))}.tag-cloud{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0}.tag-cloud li a{display:inline-block;padding:.25rem .8rem;color:#b4637a;background:#fff;border:1px solid #e7e6e3;border-radius:999px;text-decoration:none;transition:border-color .15s,background .15s}.tag-cloud li a::before{content:"#";opacity:.6}.tag-cloud li a:hover{border-color:#b4637a;background:rgba(180,99,122,.1)}.tag-cloud .tag-count{color:#797593;font-size:.8rem}.site-footer{padding-top:1.5rem;padding-bottom:2rem;border-top:1px solid #e7e6e3;color:#797593;font-size:.85rem;text-align:center}.empty{color:#797593}.product-link{font-weight:600}.product-note{color:#797593;font-size:.9em}.affiliate-disclosure{margin-top:2.5rem;padding:.6rem .9rem;color:#797593;font-size:.8rem;background:#fff;border:1px solid #e7e6e3;border-radius:8px}