@font-face{font-family:Ryo Gothic PlusN;src:url(/fonts/ryo-gothic/ryo-gothic-l.woff2) format("woff2"),url(/fonts/ryo-gothic/ryo-gothic-l.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Ryo Gothic PlusN;src:url(/fonts/ryo-gothic/ryo-gothic-r.woff2) format("woff2"),url(/fonts/ryo-gothic/ryo-gothic-r.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Ryo Gothic PlusN;src:url(/fonts/ryo-gothic/ryo-gothic-m.woff2) format("woff2"),url(/fonts/ryo-gothic/ryo-gothic-m.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Ryo Gothic PlusN;src:url(/fonts/ryo-gothic/ryo-gothic-b.woff2) format("woff2"),url(/fonts/ryo-gothic/ryo-gothic-b.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light;--color-bg: #fdfdfb;--color-bg-elev: #f6f5f0;--color-text: #1f1d1a;--color-muted: #706b62;--color-faint: #d9d4c9;--color-line: #e7e2d6;--color-accent: #2f9d96;--color-accent-dim: #1f7d77;--color-accent-soft: #e6f3f1;--color-input-bg: #ffffff;--color-danger: #c14a38;--font-serif: "Ryo Gothic PlusN", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "YuGothic", "Helvetica Neue", Arial, sans-serif;--font-sans: "Ryo Gothic PlusN", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "Hiragino Sans", "Yu Gothic", sans-serif;--max-width: 42rem;--sidebar-width: 13rem;--layout-width: 58rem}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-serif);font-size:17px;line-height:1.9;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--color-accent-soft);color:var(--color-accent-dim)}a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent;transition:color .12s ease,border-color .12s ease}a:hover{color:var(--color-accent-dim);border-bottom-color:var(--color-accent)}.site{max-width:var(--layout-width);margin:0 auto;padding:3rem 1.25rem 6rem}.site-header{border-bottom:1px solid var(--color-line);padding-bottom:1.25rem;margin-bottom:3rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.site-body{display:grid;grid-template-columns:1fr;gap:3rem}.site-main{min-width:0;max-width:var(--max-width)}@media (min-width: 900px){.site-body{grid-template-columns:minmax(0,1fr) var(--sidebar-width);align-items:start;gap:4rem}}.sidebar{font-family:var(--font-sans);font-size:.85rem;color:var(--color-text)}.sidebar-section+.sidebar-section{margin-top:2.25rem}.sidebar-heading{font-family:var(--font-sans);font-size:.92rem;color:var(--color-text);margin:0 0 .7rem;font-weight:500}.sidebar-avatar{display:block;width:120px;max-width:100%;height:auto;margin:0 auto .85rem}.sidebar-about{line-height:1.75;margin:0;color:var(--color-text);font-size:.85rem}.sidebar-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.sidebar-list a{color:var(--color-text);line-height:1.45;display:block;border-bottom:none}.sidebar-list a:hover{color:var(--color-accent);border-bottom:none}.sidebar-tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem .75rem}.sidebar-tags li{font-size:.8rem}.sidebar-tags a{color:var(--color-muted);border-bottom:none}.sidebar-tags a:hover{color:var(--color-accent)}.sidebar-tag-count{color:var(--color-faint);margin-left:.25em;font-variant-numeric:tabular-nums;font-size:.75rem}.tag-heading{font-family:var(--font-sans);font-size:.95rem;color:var(--color-muted);margin-bottom:2rem}.site-title{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;margin:0}.site-title a{color:var(--color-text)}.site-nav{font-family:var(--font-sans);font-size:.85rem;color:var(--color-muted)}.site-nav a{color:var(--color-muted);margin-left:1rem}.site-footer{margin-top:5rem;padding-top:1.5rem;border-top:1px solid var(--color-line);font-family:var(--font-sans);font-size:.8rem;color:var(--color-muted)}.post-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2.5rem}.post-list-item{display:flex;flex-direction:column;gap:.35rem}.post-list-meta{font-family:var(--font-sans);font-size:.85rem;color:var(--color-muted)}.post-list-title{font-size:1.35rem;font-weight:500;line-height:1.4;margin:0}.post-list-title a{color:var(--color-text)}.post-list-description{color:var(--color-muted);margin:.25rem 0 0}.tag{display:inline-block;font-family:var(--font-sans);font-size:.82rem;color:var(--color-muted);margin-right:.6rem}.post-header{margin-bottom:2.5rem}.post-meta{font-family:var(--font-sans);font-size:.9rem;color:var(--color-muted)}.post-title{font-size:1.8rem;line-height:1.4;margin:.4rem 0 .2rem;font-weight:500}.post-tags{font-family:var(--font-sans);font-size:.75rem;color:var(--color-muted);margin-top:.5rem}.post-body h2{font-size:1.3rem;margin-top:2.5rem}.post-body h3{font-size:1.1rem;margin-top:2rem}.post-body p{margin:1.1em 0}.post-body blockquote{border-left:3px solid var(--color-faint);padding-left:1rem;color:var(--color-muted);margin:1.5rem 0}.post-body code{background:var(--color-bg-elev);color:var(--color-text);padding:.1em .35em;border-radius:3px;font-size:.9em;font-family:SFMono-Regular,Menlo,Consolas,monospace}.post-body pre{background:var(--color-bg-elev);color:var(--color-text);border:1px solid var(--color-line);padding:1rem 1.1rem;border-radius:4px;overflow-x:auto;font-size:.85rem;line-height:1.6}.post-body pre code{background:transparent;color:inherit;padding:0}.post-body hr{border:none;border-top:1px solid var(--color-line);margin:2.5rem 0}.premium-gate{margin-top:3rem;padding:1.5rem 1.3rem;background:transparent;border:1px dashed var(--color-faint);font-family:var(--font-sans)}.premium-gate__title{font-family:var(--font-serif);font-size:1rem;font-weight:500;margin:0 0 .5rem;color:var(--color-text)}.premium-gate__lede{font-size:.9rem;color:var(--color-muted);margin:0 0 1.25rem;line-height:1.7}.premium-form{display:flex;flex-wrap:wrap;gap:.5rem}.premium-form input[type=password]{flex:1 1 14rem;font-family:var(--font-sans);font-size:.95rem;padding:.6rem .75rem;border:1px solid var(--color-line);border-radius:3px;background:var(--color-input-bg);color:var(--color-text)}.premium-form input[type=password]::placeholder{color:var(--color-muted);opacity:.7}.premium-form input[type=password]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #2f9d962e}.premium-form button{font-family:var(--font-sans);font-size:.9rem;padding:.55rem 1.1rem;background:var(--color-accent);color:#fff;border:none;border-radius:2px;cursor:pointer;font-weight:500;transition:background .12s ease}.premium-form button:hover{background:var(--color-accent-dim)}.premium-form button:disabled{background:var(--color-faint);color:var(--color-muted);cursor:not-allowed}.premium-error{margin-top:.85rem;font-size:.85rem;color:var(--color-danger);min-height:1.2em}.premium-divider{border:none;border-top:1px dashed var(--color-line);margin:2.5rem 0 1.5rem}.premium-label{font-family:var(--font-sans);font-size:.85rem;color:var(--color-accent-dim);margin-bottom:.6rem}
