*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-body, "Hiragino Sans", "Yu Gothic", system-ui, sans-serif);line-height:var(--line-height-body, 1.7);color:var(--color-fg, #1a1a1a);background:var(--color-bg, #fafafa)}img,picture,svg{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-heading, inherit);line-height:var(--line-height-heading, 1.3)}p,ul,ol,pre,blockquote{margin:0}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}.site{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh}.container{width:min(72ch,100% - 2 * var(--spacing-unit, 1rem));margin-inline:auto}.site-header,.site-footer{padding-block:var(--spacing-unit, 1rem)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-unit, 1rem);flex-wrap:wrap}.site-header .brand{font-family:var(--font-heading, inherit);font-size:1.25rem;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;color:var(--color-fg, #1a1a1a)}.site-header .brand-mark{display:inline-block;width:1.1em;height:1.5em;background-color:currentColor;mask:url(/henoheno.png) center / contain no-repeat;-webkit-mask:url(/henoheno.png) center / contain no-repeat;flex-shrink:0}.site-header nav{display:flex;gap:.75rem;align-items:center}.site-header .icon-link{display:inline-flex;color:var(--color-fg, #1a1a1a)}.site-header .icon-link svg{width:1.25rem;height:1.25rem;fill:currentColor}.site-main{padding-block:calc(var(--spacing-unit, 1rem) * 2)}.site-footer{font-size:.85rem;text-align:center}.site-footer .theme-credit{margin-bottom:.25rem;opacity:.7}.post-list{list-style:none;padding:0;display:grid;gap:calc(var(--spacing-unit, 1rem) * 1.5)}.post-list a{text-decoration:none}.post-list time{display:block;font-size:.85rem;opacity:.7}.post-list h2{font-size:1.25rem;margin-top:.25rem}article.post header{margin-bottom:calc(var(--spacing-unit, 1rem) * 1.5)}article.post header time{display:block;font-size:.85rem;opacity:.7}article.post header h1{font-size:1.75rem;margin-top:.25rem}article.post .content>*+*{margin-top:1em}.not-found{text-align:center;display:grid;gap:1.25rem;margin-block:calc(var(--spacing-unit, 1rem) * 4)}.not-found-mark{font-family:var(--font-heading, inherit);font-size:4rem;line-height:1;opacity:.5}.not-found-msg{display:block}:root{--color-fg: #e7e2f4;--color-bg: #0d0c1a;--color-accent: #45e0c4;--color-accent-2: #ff4fa0;--color-surface: #17152b;--color-border: #322e52;--spacing-unit: 1rem;--font-heading: "Century Gothic", "Futura", "Consolas", "Yu Gothic", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", "Segoe UI", sans-serif;--line-height-body: 1.85;--line-height-heading: 1.25;--ease-default: cubic-bezier(.65, 0, .35, 1)}*{box-sizing:border-box}html{background:var(--color-bg)}body{margin:0;color:var(--color-fg);background:radial-gradient(ellipse at 20% -10%,rgba(69,224,196,.08),transparent 55%),radial-gradient(ellipse at 80% 110%,rgba(255,79,160,.07),transparent 55%),var(--color-bg);font-family:var(--font-body);line-height:var(--line-height-body);letter-spacing:.01em}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--line-height-heading);color:var(--color-fg);letter-spacing:.02em}a{color:var(--color-accent);text-decoration-thickness:1px;text-underline-offset:.2em;transition:color .3s var(--ease-default),text-shadow .3s var(--ease-default)}a:hover,a:focus-visible{color:var(--color-accent-2);text-shadow:0 0 10px rgba(255,79,160,.45)}::selection{background:var(--color-accent-2);color:#0d0c1a}.site-header{position:relative;padding:calc(var(--spacing-unit) * 2.5) calc(var(--spacing-unit) * 1.5);background:linear-gradient(180deg,#16142a 0%,var(--color-bg) 100%);border-bottom:1px solid var(--color-border);overflow:hidden}.site-header:before{content:"";position:absolute;inset:-40% -10% auto;height:220%;background:repeating-linear-gradient(180deg,rgba(69,224,196,.05) 0,rgba(69,224,196,.05) 2px,transparent 2px,transparent 10px);animation:numb-flood 9s linear infinite;pointer-events:none}.site-header h1,.site-header .site-title{position:relative;font-size:1.9rem;text-transform:lowercase;animation:numb-flicker 6s var(--ease-default) infinite}.site-footer{padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 1.5);background:var(--color-surface);border-top:1px solid var(--color-border);color:#b9b3d1;font-size:.85rem}.post-list{display:block;padding:0;margin:calc(var(--spacing-unit) * 2) 0;list-style:none}.post-list li,.post-list>*{padding:var(--spacing-unit) 0;border-bottom:1px dashed var(--color-border);transition:padding-left .35s var(--ease-default)}.post-list li:hover,.post-list>*:hover{padding-left:calc(var(--spacing-unit) * .5);border-bottom-color:var(--color-accent)}article.post{position:relative;margin:calc(var(--spacing-unit) * 2) auto;padding:calc(var(--spacing-unit) * 1.75);max-width:42rem;background:linear-gradient(165deg,var(--color-surface) 0%,#100e20 100%);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 18px 40px -20px #45e0c41f}article.post:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-2));opacity:.7;transform-origin:left;animation:numb-swim 4.5s var(--ease-default) infinite}article.post h2,article.post h3{color:var(--color-accent)}article.post blockquote{margin:var(--spacing-unit) 0;padding-left:var(--spacing-unit);border-left:3px solid var(--color-accent-2);color:#cfc9e6;font-style:italic}code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:#0a0916;border:1px solid var(--color-border);border-radius:4px}hr{border:none;border-top:1px solid var(--color-border);margin:calc(var(--spacing-unit) * 2) 0}@keyframes numb-flood{0%{transform:translateY(0)}to{transform:translateY(10px)}}@keyframes numb-flicker{0%,92%,to{opacity:1}94%{opacity:.75}96%{opacity:.95}}@keyframes numb-swim{0%,to{transform:scaleX(.85);opacity:.55}50%{transform:scaleX(1);opacity:.9}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
