:root{--bg:#fff;--text:#111;--muted:#666;--rule:#ccc;--link:#00e;--visited:#551a8b;--code-bg:#f4f4f4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#141414;--text:#ddd;--muted:#999;--rule:#3a3a3a;--link:#8ab4f8;--visited:#c58af9;--code-bg:#222}}html{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%}body{max-width:38rem;margin:2.5rem auto 4rem;padding:0 1rem;font:18px/1.55 Georgia,Times New Roman,Times,serif}a{color:var(--link)}a:visited{color:var(--visited)}hr{border:0;border-top:1px solid var(--rule);margin:1.5rem 0}header .masthead{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.lang-switch{white-space:nowrap;margin:0;font-size:.9rem}.lang-switch a,.lang-switch a:visited{color:var(--link)}.lang-switch strong{font-weight:700}.site-name{margin:0;font-size:1.9rem;font-weight:700}.site-name a,.site-name a:visited{color:var(--text);text-decoration:none}.logo{vertical-align:-.08em;background-color:currentColor;width:1.05em;height:.98em;margin-right:.35em;display:inline-block;-webkit-mask:url(/logo-a.svg) 50%/contain no-repeat;mask:url(/logo-a.svg) 50%/contain no-repeat}dl.skills{margin:0}dl.skills dt{font-weight:700;display:inline}dl.skills dt:after{content:": "}dl.skills dd{margin:0;display:inline}dl.skills dd:after{content:"";margin-bottom:.2rem;display:block}.job ul{margin:.4rem 0;padding-left:1.2rem}.job li{margin:.2rem 0}header nav{color:var(--muted);margin-top:.2rem}h1{margin:0 0 .3rem;font-size:1.6rem;line-height:1.25}h2{margin:2rem 0 .6rem;font-size:1.2rem}h3{margin:1.5rem 0 .2rem;font-size:1.05rem}.date,time{color:var(--muted);font-family:Courier New,Courier,monospace;font-size:.85em}ul.index{margin:0;padding:0;list-style:none}ul.index li{gap:1rem;margin:.25rem 0;display:flex}ul.index .date{flex:0 0 7.5rem;padding-top:.15em}.muted{color:var(--muted)}.small{font-size:.9rem}.entry{margin:1.2rem 0}.entry p{margin:.2rem 0}article img{max-width:100%;height:auto}code{background:var(--code-bg);padding:0 .2em;font-family:Courier New,Courier,monospace;font-size:.9em}pre{background:var(--code-bg);padding:.8rem 1rem;font-size:.85rem;line-height:1.45;overflow-x:auto}pre code{background:0 0;padding:0}blockquote{border-left:3px solid var(--rule);color:var(--muted);margin:1rem 0;padding-left:1rem}footer{color:var(--muted);font-size:.85rem}@media (max-width:480px){body{margin-top:1.5rem;font-size:17px}ul.index li{flex-direction:column;gap:0;margin:.6rem 0}ul.index .date{flex-basis:auto}}form.contact label{margin:.8rem 0;display:block}form.contact input,form.contact textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--rule);margin-top:.2rem;padding:.35rem .4rem;font-size:1rem;display:block}form.contact input:focus,form.contact textarea:focus{outline:2px solid var(--link);outline-offset:-1px}form.contact button{font:inherit;cursor:pointer;padding:.25rem 1rem}.captcha{min-height:65px;margin:.8rem 0}form.contact .hp{position:absolute;left:-10000px}.toast-region{pointer-events:none;z-index:10;justify-content:center;padding:0 1rem;display:flex;position:fixed;bottom:1.5rem;left:0;right:0}.toast{pointer-events:auto;background:var(--bg);max-width:34rem;color:var(--text);border:1px solid var(--rule);border-left:3px solid var(--toast-accent);align-items:baseline;gap:.6rem;padding:.6rem .8rem .6rem .9rem;font-size:.95rem;line-height:1.45;animation:.18s ease-out toast-in;display:flex;box-shadow:0 2px 10px #0000001f}.toast-ok{--toast-accent:#2e7d32}.toast-error{--toast-accent:#b00020}.toast-mark{color:var(--toast-accent);font-family:Courier New,Courier,monospace;font-weight:700}.toast-close{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;margin-left:.4rem;padding:0 .2rem;font-size:1.1rem;line-height:1}.toast-close:hover{color:var(--text)}@media (prefers-color-scheme:dark){.toast{box-shadow:0 2px 12px #00000080}.toast-ok{--toast-accent:#81c784}.toast-error{--toast-accent:#ff8a80}}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}
