.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:PersonalSans;src:url(/personal/site-sans.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PersonalSans;src:url(/personal/site-sans-medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:PersonalSans;src:url(/personal/site-sans-bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:PersonalIcons;src:url(/personal/site-icons.ttf)format("truetype");font-display:block}html:has(.personal-site),body:has(.personal-site){color:#ccc;background:#000}.personal-site{color:#ccc;font-synthesis:none;background:#000;min-height:100svh;font-family:PersonalSans,Tahoma,sans-serif;font-size:14px;line-height:1.42857}.personal-site *{box-sizing:border-box}.personal-site a{color:inherit;text-decoration:none}.personal-site button,.personal-site input{font:inherit}.personal-site :is(a,button,input,[tabindex]):focus-visible{outline-offset:4px;outline:2px solid #fbc423}.personal-site__icon{-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;font-family:PersonalIcons!important}.personal-site__shell{flex-direction:column;width:1140px;min-height:100svh;margin:auto;padding:97px 0 130px;display:flex}.personal-site__header{z-index:20;white-space:nowrap;color:#fff;background:#000;justify-content:center;align-items:flex-start;min-height:97px;padding:20px 30px;display:flex;position:fixed;inset:0 0 auto}.personal-site__logo{flex:none;justify-content:center;align-items:center;width:54px;height:42px;display:flex;position:relative}.personal-site__logo:before,.personal-site__logo:after{content:"";background:#fff;width:2px;height:18px;position:absolute;top:12px}.personal-site__logo:before{inset-inline-start:0}.personal-site__logo:after{inset-inline-end:0}.personal-site__logo-mark{width:34px;height:40px;display:block;overflow:visible}.personal-site__navigation,.personal-site__nav{align-items:center;display:flex}.personal-site__navigation{height:42px}.personal-site__nav a,.personal-site__footer-links>a{white-space:nowrap;padding:0 10px;font-size:14px;font-weight:500;line-height:20px;transition:color .18s;position:relative}.personal-site__nav a:after,.personal-site__footer-links>a:after,.personal-site__footer-links>a:first-child:before{content:"";inset-inline-end:-1px;background:#fff;width:2px;height:18px;margin-top:-9px;position:absolute;top:50%}.personal-site__footer-links>a:first-child:before{inset-inline:-1px auto}.personal-site__nav a:hover,.personal-site__footer a:hover{color:#fbc423}.personal-site__motto{border-bottom:1px solid #888;justify-content:space-between;align-items:center;gap:8px;width:190px;margin-inline:12px;padding-bottom:3px;font-size:12px;line-height:20px;transition:color .18s,border-color .18s;display:flex;color:#ccc!important}.personal-site__motto:hover{border-color:#fbc423;color:#fbc423!important}.personal-site__motto span{font-size:16px;line-height:1}.personal-site__menu-toggle{display:none}.personal-site__home{flex-direction:column;flex:1;justify-content:center;align-items:center;padding-top:90px;display:flex}.personal-site__section-label{direction:rtl;flex:none;justify-content:center;align-items:center;gap:10px;height:60px;margin:0;font-size:14px;font-weight:400;display:flex}.personal-site__section-label>.personal-site__icon{font-size:18px}.personal-site__section-label>span:last-child{border-right:2px solid #fff;padding-right:10px;line-height:18px}.personal-site__stage{direction:ltr;width:33.3333%;margin-bottom:25px;padding:30px;position:relative}.personal-site__stage:before{content:"";pointer-events:none;background:url(/personal/tl.gif) 0 0 no-repeat,url(/personal/tr.gif) 100% 0 no-repeat,url(/personal/bl.gif) 0 100% no-repeat,url(/personal/br.gif) 100% 100% no-repeat;position:absolute;inset:0}.personal-site__gallery-window{clip-path:inset(0);width:100%;overflow:hidden}.personal-site__gallery-track{direction:ltr;display:flex}.personal-site__gallery-track--moving{transition:transform .25s}.personal-site__artwork{flex:0 0 100%;min-width:0;margin:0}.personal-site__gallery-track:not(.personal-site__gallery-track--moving)>.personal-site__artwork[aria-hidden=true]{visibility:hidden}.personal-site__featured{color:#fff;text-align:start;cursor:pointer;background:0 0;border:0;width:100%;height:400px;padding:0;display:block;position:relative}.personal-site__artwork-image{object-fit:contain;width:100%;height:100%;display:block}.personal-site__artwork-caption{opacity:0;text-align:start;background:#000;padding:25px;transition:opacity .5s;position:absolute;inset:0}.personal-site__artwork-caption strong{font-size:20px;font-weight:700;line-height:1.5;display:block}.personal-site__artwork-caption>span{margin-top:10px;font-size:16px;line-height:1.7;display:block}@media (hover:hover){.personal-site__featured:hover .personal-site__artwork-caption{opacity:1}}.personal-site__featured--open .personal-site__artwork-caption,.personal-site__featured:focus-visible .personal-site__artwork-caption{opacity:1}.personal-site__arrow{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;width:44px;height:44px;margin-top:-15px;padding:0;line-height:1;transition:color .18s;position:absolute;top:50%;font-size:30px!important}.personal-site__arrow--previous{left:-38px}.personal-site__arrow--next{right:-38px}.personal-site__arrow:hover{color:#fbc423}.personal-site__arrow:disabled{cursor:default}.personal-site__slide-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.personal-site__footer{z-index:15;color:#fff;background:#000;flex-direction:column;align-items:center;gap:16px;min-width:0;padding:14px 30px 20px;display:flex;position:fixed;inset:auto 0 0}.personal-site__footer-links{justify-content:center;align-items:center;display:flex}.personal-site__language{text-align:center;min-width:45px}.personal-site__quotation{color:#888;justify-content:center;align-items:center;gap:8px;width:min(100%,1140px);min-width:0;font-size:12px;font-weight:400;line-height:20px;display:flex}.personal-site__quotation blockquote{white-space:normal;overflow-wrap:anywhere;text-wrap:pretty;text-align:center;cursor:help;max-width:100%;margin:0}.personal-site__quotation cite{font:inherit}.personal-site__listing{flex:1;width:100%;margin:0 auto 35px}.personal-site__listing h1{border-bottom:1px solid #aaa;margin:20px 0 30px;padding-bottom:16px;font-size:28px;font-weight:700;line-height:40px}.personal-site__entries{flex-direction:column;display:flex}.personal-site__entry{border-bottom:1px solid #333;grid-template-columns:30% minmax(0,1fr);align-items:start;gap:20px;margin:0 0 35px;padding:0 8.33333% 35px;display:grid}.personal-site__entry-art,.personal-site__detail-art{background:#000;justify-content:center;align-items:center;display:flex}.personal-site__entry-art{width:100%;height:220px}.personal-site__entry-art img{object-fit:contain;width:155px;height:170px}.personal-site__entry-copy{text-align:start;flex-direction:column;align-self:stretch;align-items:flex-start;min-height:185px;display:flex}.personal-site__entry-copy h2{margin:0 0 15px;font-size:20px;font-weight:700;line-height:1.42857}.personal-site__entry-copy p{margin:0 0 10px;font-size:12px;line-height:1.7}.personal-site__read-more{background:#fff;border:1px solid #fff;padding:6px 15px;font-size:14px;font-weight:400;line-height:20px;transition:color .18s,background-color .18s;display:inline-block;color:#000!important}.personal-site__read-more:hover{background:#000;color:#fff!important}.personal-site__entry-copy .personal-site__read-more{align-self:flex-end;margin-top:auto}.personal-site__writing-list{grid-template-columns:repeat(auto-fit,260px);justify-content:center;gap:32px 40px;width:100%;margin-inline:auto;display:grid}.personal-site__writing-row{text-align:start;padding-block:12px 24px}.personal-site__writing-link{display:block}.personal-site__writing-link img{aspect-ratio:3/4;object-fit:cover;width:100%;height:auto;display:block}.personal-site__writing-row h2{color:#ddd;text-wrap:balance;text-underline-offset:5px;margin:16px 0 0;font-size:16px;font-weight:500;line-height:1.8}.personal-site__writing-link:hover h2{text-decoration:underline 1px #777}.personal-site__writing-row p{color:#999;text-wrap:pretty;margin:8px 0 0;font-size:13px;line-height:1.9}.personal-site__empty{color:#ccc}.personal-site__writing-detail{flex:1;width:50%;margin:25px auto 40px}.personal-site__writing-opening{grid-template-columns:1fr 2fr;align-items:start;gap:20px;margin-bottom:25px;display:grid}.personal-site__writing-detail h1{margin:0 0 15px;font-size:20px;line-height:1.5}.personal-site__writing-lead{margin:10px 0;font-size:14px;line-height:1.7}.personal-site__writing-detail figure{width:100%;margin:0}.personal-site__writing-detail figure img{width:100%;height:auto;display:block}.personal-site__writing-detail figcaption{color:#888;margin-top:8px;font-size:11px;line-height:1.6}.personal-site__writing-body p{text-align:justify;margin:0 0 20px;font-size:14px;line-height:1.8}.personal-site__writing-body h2{color:#eee;margin:32px 0 16px;font-size:18px;font-weight:500;line-height:1.8}.personal-site__writing-body blockquote{color:#aaa;border-inline-start:2px solid #888;margin:28px 0;padding:8px 18px;font-size:14px;line-height:1.9}.personal-site__writing-back,.personal-site__detail-copy>a{border:1px solid #fff;margin-top:12px;padding:3px 30px;font-size:12px;line-height:20px;transition:color .18s,background-color .18s;display:inline-block;color:#fff!important}.personal-site__writing-back:hover,.personal-site__detail-copy>a:hover{background:#fff;color:#000!important}.personal-site__detail{flex:1;grid-template-columns:1fr 1fr;align-items:start;gap:20px;width:50%;margin:25px auto 40px;display:grid}.personal-site__detail-art{height:400px}.personal-site__detail-art img{object-fit:contain;width:80%;height:80%}.personal-site__detail-copy h1{margin:15px 0;font-size:20px;line-height:1.5}.personal-site__detail-copy p{margin:0 0 14px;font-size:14px;line-height:1.8}.personal-site__about{isolation:isolate;text-align:center;flex:1;justify-content:center;align-items:center;width:100%;min-height:520px;display:flex;position:relative;overflow:hidden}.personal-site__about:before{content:"";z-index:-2;opacity:.28;pointer-events:none;background:url(/personal/logo-mark.svg) 50%/auto 94% no-repeat;position:absolute;inset:0}.personal-site__about:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(36% 44%,#000 8%,#000e 52%,#0000 100%);position:absolute;inset:0}.personal-site__about-copy{max-width:540px;padding:30px 12px}.personal-site__about-copy h1{margin:0 0 14px;font-size:25px}.personal-site__about-copy p{margin:0 0 14px;font-size:16px;line-height:2.1}.personal-site__contact{justify-content:center;align-items:center;gap:16px;margin-top:24px;display:flex}.personal-site__email{white-space:nowrap;border-bottom:1px solid #888;padding:8px 2px;font-size:15px;transition:border-color .18s}.personal-site__email:hover{border-color:#fbc423}.personal-site__github{border:1px solid #fff;place-items:center;width:42px;height:42px;transition:color .18s,background-color .18s;display:grid}.personal-site__github svg{width:23px;height:23px}.personal-site__github:hover{color:#000;background:#fff}@media (width>=768px) and (height<=800px){.personal-site__home{padding-top:0}.personal-site__featured{height:340px}}@media (width>=768px) and (width<=1199px){.personal-site__shell{width:940px}}@media (width>=768px) and (width<=991px){.personal-site__shell{width:720px}.personal-site__stage{width:50%}.personal-site__entry{grid-template-columns:33.3333% minmax(0,1fr);padding-inline:0}.personal-site__writing-detail,.personal-site__detail{width:75%}}@media (width<=767px){.personal-site__writing-list{grid-template-columns:repeat(2,minmax(0,260px));column-gap:18px}.personal-site__shell{width:calc(100% - 60px);padding:97px 0 24px}.personal-site__header{justify-content:space-between;height:97px;padding:20px 30px}.personal-site__logo{order:0;width:34px}.personal-site__logo:before,.personal-site__logo:after{display:none}.personal-site__menu-toggle{color:#fff;cursor:pointer;background:0 0;border:0;order:2;justify-content:center;align-items:center;width:42px;height:41px;margin-top:2px;display:flex}.personal-site__menu-toggle span,.personal-site__menu-toggle span:before,.personal-site__menu-toggle span:after{background:currentColor;width:22px;height:2px;transition:transform .18s,top .18s;display:block}.personal-site__menu-toggle span{position:relative}.personal-site__menu-toggle span:before,.personal-site__menu-toggle span:after{content:"";position:absolute;left:0}.personal-site__menu-toggle span:before{top:-7px}.personal-site__menu-toggle span:after{top:7px}.personal-site__menu-toggle[aria-expanded=true]{color:#000;background:#fff}.personal-site__navigation{color:#000;white-space:normal;background:#fff;height:auto;padding:15px;display:none;position:absolute;top:80px;left:30px;right:30px}.personal-site__navigation--open{display:block}.personal-site__nav{flex-direction:column;align-items:stretch}.personal-site__nav a{text-align:start;margin-bottom:7px;padding:7px 0;font-size:14px;font-weight:700}.personal-site__nav a:after{display:none}.personal-site__motto{border-color:#888;width:100%;margin:8px 0 0;padding-bottom:6px;font-size:12px;color:#333!important}.personal-site__home{min-height:calc(100svh - 217px);padding-top:20px}.personal-site__stage{width:83.3333%}.personal-site__stage:before{display:none}.personal-site__arrow--previous{left:-38px}.personal-site__arrow--next{right:-38px}.personal-site__footer{gap:16px;margin-top:auto;padding:24px 0 0;position:static}.personal-site__footer-links>a{padding-inline:10px;font-size:12px}.personal-site__quotation{gap:4px}.personal-site__listing{margin-bottom:0}.personal-site__listing h1{font-size:28px}.personal-site__entry{flex-direction:column;gap:20px;width:100%;margin-bottom:35px;padding:0 0 20px;display:flex}.personal-site__entry-copy{width:100%;min-height:0}.personal-site__entry-copy .personal-site__read-more{margin-top:12px}.personal-site__writing-detail,.personal-site__detail{width:100%;margin-top:25px}.personal-site__writing-opening{flex-direction:column;gap:20px;display:flex}.personal-site__writing-detail figure{width:100%}.personal-site__writing-detail h1{font-size:20px}.personal-site__writing-body p{text-align:start;font-size:15px;line-height:1.9}.personal-site__detail{grid-template-columns:1fr;gap:20px}.personal-site__detail-art{height:350px}.personal-site__about{min-height:420px}.personal-site__about:before{background-size:100%}.personal-site__about:after{background:radial-gradient(52% 44%,#000b 5%,#0008 58%,#0000 100%)}.personal-site__about-copy{padding-inline:0}.personal-site__about-copy h1{font-size:22px}.personal-site__about-copy p{font-size:15px}}@media (width<=321px){.personal-site__featured{height:250px}.personal-site__artwork-caption{padding:12px}.personal-site__artwork-caption strong{font-size:16px}.personal-site__artwork-caption>span{font-size:13px}}@media (prefers-reduced-motion:reduce){.personal-site :is(a,button,span),.personal-site__artwork-caption{transition:none}}.personal-site__quotation{min-height:32px;line-height:1.9}@media (width<=767px){.personal-site__quotation{min-height:8em;padding-inline:4px}}@keyframes personal-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes personal-frame-enter{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:no-preference){.personal-site__section-label,.personal-site__listing,.personal-site__writing-detail,.personal-site__detail,.personal-site__about-copy{animation:.45s cubic-bezier(.22,1,.36,1) both personal-enter}.personal-site__stage:before{animation:.65s cubic-bezier(.22,1,.36,1) both personal-frame-enter}.personal-site__gallery-window{animation:.55s cubic-bezier(.22,1,.36,1) 80ms both personal-enter}.personal-site__quotation{animation:.45s cubic-bezier(.22,1,.36,1) .12s both personal-enter}.personal-site__navigation--open{animation:.18s ease-out both personal-enter}}.personal-site .writing-highlight{color:#f0eccf;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(#34311f,#34311f) 0/100% 100% no-repeat;padding:.08em .12em}.personal-site[dir=rtl] .writing-highlight{background-position:100%}.personal-site__writing-body ::selection{color:#fff;background:#55513a}.personal-site .writing-inline-math{font-size:.95em;display:inline-block}.personal-site .writing-excerpt,.personal-site .writing-equation,.personal-site .writing-code,.personal-site .writing-demo{min-width:0;margin:28px 0}.personal-site .writing-excerpt blockquote{margin:0 0 10px}.personal-site .writing-excerpt blockquote p{color:inherit;text-align:start;line-height:1.95}.personal-site .writing-excerpt blockquote p:last-child{margin-bottom:0}.personal-site .writing-image{margin:32px 0}.personal-site .writing-image img{width:auto;max-width:100%;height:auto;margin-inline:auto}.personal-site .writing-image figcaption{color:#999;margin-top:12px;font-size:12px;line-height:1.9}.personal-site .writing-source .writing-translation-credit{color:#999;text-align:start;margin:4px 0 24px;font-size:12px;line-height:1.9}.personal-site .writing-references{color:#999;margin:0;padding-inline-start:22px;font-size:12px;line-height:1.9}.personal-site .writing-references li{overflow-wrap:anywhere;margin-bottom:12px;padding-inline-start:4px}.personal-site .writing-references a{color:inherit;text-underline-offset:4px;text-decoration:underline #555}.personal-site .writing-excerpt figcaption,.personal-site .writing-equation figcaption,.personal-site .writing-code figcaption,.personal-site .writing-demo figcaption{color:#999;text-align:start;font-size:12px;line-height:1.9}.personal-site .writing-excerpt figcaption{padding-inline-start:20px}.personal-site .writing-excerpt a{color:inherit;text-underline-offset:4px;text-decoration:underline #555}.personal-site .writing-equation>div{padding:12px 0;font-size:clamp(12px,2.2vw,16px);overflow-x:auto}.personal-site .writing-equation .katex-display{color:#eee;margin:0}.personal-site .writing-code figcaption{margin-bottom:10px}.personal-site .writing-code pre{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;border:1px solid #282828;margin:0;padding:18px;font:12px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;background:#101010!important}.personal-site .writing-code code{font:inherit}.personal-site .writing-wave{border-block:1px solid #333;padding:18px 0}.personal-site .writing-wave svg{direction:ltr;width:100%;height:auto;display:block;overflow:visible}.personal-site .writing-wave__axis{fill:none;stroke:#444;stroke-width:1px}.personal-site .writing-wave__curve{fill:none;stroke:#ddd7ad;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.personal-site .writing-wave text{fill:#999;font:12px ui-monospace,monospace}.personal-site .writing-wave__controls{flex-wrap:wrap;align-items:center;gap:14px;margin-top:12px;font-size:12px;display:flex}.personal-site .writing-wave label{align-items:center;gap:10px;display:flex}.personal-site .writing-wave output{color:#ddd7ad;min-width:4ch}.personal-site .writing-wave input{accent-color:#ddd7ad;direction:ltr;flex:1;min-width:90px;max-width:220px;margin:0}.personal-site .writing-wave button{color:#ccc;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:1px solid #555;padding:0 12px}.personal-site .writing-demo figcaption{margin-top:12px}.personal-site .writing-code pre:focus-visible,.personal-site .writing-equation>div:focus-visible,.personal-site .writing-wave :focus-visible{outline-offset:4px;outline:1px solid #ddd7ad}@media (hover:hover){.personal-site .writing-wave button:hover{color:#fff;background:#202020}.personal-site .writing-excerpt a:hover{color:#ddd}}@media (prefers-reduced-motion:no-preference){.personal-site .writing-highlight--draw{animation:.65s cubic-bezier(.22,1,.36,1) both writing-highlight-draw}.personal-site .writing-wave button{transition:background-color .18s,color .18s}}@media (prefers-reduced-motion:reduce){.personal-site .writing-wave button{display:none}}@keyframes writing-highlight-draw{0%{background-size:0% 100%}to{background-size:100% 100%}}html{scroll-behavior:smooth;scrollbar-width:none;font-synthesis:none}body{text-rendering:optimizelegibility;min-width:0;margin:0}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}button{-webkit-tap-highlight-color:transparent}.personal-site [hidden]{display:none!important}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
