#_navbar .nav-btn:hover{color:var(--body-color) !important}#_navbar .nav-btn:focus,#_navbar .nav-btn:focus-visible{outline:none !important;box-shadow:none !important}.nav-home-link{font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;width:auto !important;padding:0 1.25rem !important;text-decoration:none !important;border-color:var(--border-color) !important;color:var(--menu-text)}.contact-form .form-group{margin-bottom:1rem}.contact-form label{display:block;margin-bottom:0.25rem;font-weight:bold;font-size:0.9rem}.contact-form input,.contact-form textarea{width:100%;padding:0.5rem 0.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--body-bg);color:var(--body-color);font-family:inherit;font-size:1rem;box-sizing:border-box}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent-color)}.contact-form textarea{resize:vertical}.contact-form .contact-thanks{text-align:center;padding:2rem 0;font-size:1.1rem}#js-toc{display:none}@media (min-width: 104rem){#js-toc{display:block;position:fixed;top:8rem;right:2rem;width:14rem;z-index:10;font-size:0.8rem}#js-toc p{color:var(--gray);font-size:0.7rem;letter-spacing:0.08em;margin-bottom:0.5rem}#js-toc ol{list-style:decimal;padding-left:1.25rem;margin:0}#js-toc li+li{margin-top:0.25rem}#js-toc a{color:var(--gray-text);text-decoration:none}#js-toc a:hover{color:var(--body-color)}}@media screen and (min-width: 54em){.content{max-width:54rem}}@media screen and (min-width: 86em){.content{max-width:60rem}}article.page h1:not(.page-title){width:100%;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.photo-tooltip{cursor:pointer;border-bottom:1px dotted currentColor}#ringo-popup{display:none;position:fixed;z-index:9999;pointer-events:none;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.4);width:160px;height:213px;object-fit:cover}#_swipe{display:none}#scroll-indicator{position:fixed;top:clamp(2rem, 6vw, 4rem);right:clamp(2rem, 6vw, 4rem);z-index:9999;color:rgba(255,255,255,0.85);background:transparent;border:2px solid rgba(255,255,255,0.62);border-radius:50%;padding:0.35rem;cursor:pointer;line-height:0;text-decoration:none;opacity:0;pointer-events:none;transition:background-color 0.2s, color 0.2s, opacity 0.5s}#scroll-indicator svg{display:block}#scroll-indicator.is-visible{opacity:1;pointer-events:auto;animation:scroll-bounce 2s ease-in-out infinite}#scroll-indicator:hover,#scroll-indicator:focus-visible{color:#fff;border-color:rgba(255,255,255,0.92)}#scroll-indicator:focus-visible{outline:2px solid currentColor;outline-offset:0.25rem}@keyframes scroll-bounce{0%, 100%{transform:translateX(0) scale(1)}50%{transform:translateX(16px) scale(1.12)}}.icon-orcid::before{font-family:initial !important;content:'' !important;display:inline-block;width:1em;height:1em;background-color:currentColor;-webkit-mask:url("/assets/img/orcid.svg") center/contain no-repeat;mask:url("/assets/img/orcid.svg") center/contain no-repeat;vertical-align:-0.1em}.icon-cv::before{font-family:var(--font-family-heading) !important;content:'CV' !important;font-size:1em;font-weight:900;letter-spacing:-0.02em}@supports (text-decoration-thickness: initial) and (text-underline-offset: initial){.dl-table a{text-underline-offset:.8rem}}@supports not ((text-decoration-thickness: initial) and (text-underline-offset: initial)){.dl-table a{padding-bottom:.45rem}}.dl-table .btn,.dl-table .gumroad-button{margin:1rem 0}
