*{font-family:Montserrat,sans-serif}body{-webkit-user-select:none;user-select:none}.text-panel,.text-panel *{-webkit-user-select:text;user-select:text}html,body{height:100%;margin:0;padding:0;overflow:hidden}.loading-overlay{z-index:10000;opacity:1;background-color:#182024;width:100%;height:100%;transition:opacity 1s;position:fixed;top:0;left:0;overflow:hidden}.loading-overlay:before{content:"";filter:blur(16px);background-position:50%;background-size:cover;position:absolute;inset:-60px}.loading-info{position:relative}.loading-overlay.hiding{opacity:0}.loading-overlay.hidden{display:none}.loading-info{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.loading-title{color:#fff;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 0 18px #0000004d;margin-right:-.22em;font-family:Computer Modern Serif,serif;font-size:2.2rem;line-height:1;animation:1.2s both loading-appear}.loading-line{background:#ffffff2e;width:11rem;height:1px;margin-top:1.6rem;animation:1.2s .2s both loading-appear;position:relative;overflow:hidden}.loading-line span{transform:scaleX(var(--progress,0));transform-origin:0;background:#fff;transition:transform .6s;position:absolute;inset:0}.loading-line:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);width:30%;animation:2.4s ease-in-out infinite loading-travel;position:absolute;top:0;bottom:0}.loading-text{color:#fff;opacity:.6;letter-spacing:.32em;text-transform:uppercase;margin-top:1.1rem;margin-right:-.32em;font-size:.68rem;font-weight:300;animation:1.2s .4s both loading-appear}@keyframes loading-appear{0%{opacity:0;transform:translateY(.4rem)}}@keyframes loading-travel{0%{left:-30%}to{left:100%}}.mobile-warn{color:#fff;opacity:.7;letter-spacing:.24em;text-transform:uppercase;text-align:right;max-width:16rem;margin:0;font-size:.7rem;font-weight:300;line-height:1.9}.emphasis{font-weight:600}.window-outline{width:100vw;height:100vh;position:absolute;top:0;left:0}.outline-inner{box-sizing:border-box;height:100%;padding:1em}@keyframes inside-out{0%{stroke-dashoffset:400%}to{stroke-dashoffset:0%}}svg .anim *{stroke-dasharray:400%;stroke-dashoffset:0%;animation:5s ease-in-out inside-out}@keyframes generic-appear{0%{opacity:0;transform:translateY(10pt)}to{opacity:1;transform:translateY(0)}}.hideable-ui{opacity:1;transition:opacity 2s ease-in-out,filter 2s ease-in-out}.hideable-ui.hidden{opacity:0;filter:blur(8px)}.hideable-ui.no-display{display:none}.overlay-container-lb{z-index:1000;opacity:0;margin-bottom:2vh;margin-left:3vw;transition:opacity 1s ease-in-out;position:absolute;bottom:0;left:0}.overlay-container-rb{z-index:1000;opacity:0;margin-bottom:3.5rem;margin-right:3.5rem;transition:opacity 1s ease-in-out;position:absolute;bottom:0;right:0}.overlay-container-lb.no-display,.overlay-container-rb.no-display{display:none}.overlay-container-lb.show,.overlay-container-rb.show{opacity:1}.controls-explain{color:#fff;text-transform:uppercase;text-shadow:0 0 14px #00000059;grid-template-columns:auto auto;align-items:baseline;gap:.7rem 1.6rem;margin:0;display:grid}.controls-explain dt{letter-spacing:.3em;justify-self:end;font-size:.75rem;font-weight:400}.controls-explain dd{letter-spacing:.24em;opacity:.6;margin:0;font-size:.68rem;font-weight:300}.text-panel{--reading-font:"Computer Modern Serif", Georgia, serif}.text-panel p,.text-panel li,.contact-text,.link-name,.link-note{font-family:var(--reading-font)}.text-panel p *{font-family:inherit}.text-panel{line-height:20pt}.text-panel-content{padding:2.25rem 2.75rem}.line{background:#fff3;border-top:1.5pt solid #fff3;border-radius:4pt;width:100%;height:0;margin-bottom:2em;display:block;position:relative}.links-title{margin-bottom:1.5em}.link-list{margin:0 0 1em;padding:0;list-style:none}.link-list li+li{margin-top:1.4em}.link-item{color:#fff;flex-direction:column;width:fit-content;margin-left:5pt;text-decoration:none;display:flex}.link-name{font-size:15pt;font-weight:400;position:relative}.link-name:after{content:"";border-top:1.5pt solid #fff;border-radius:4pt;width:0%;transition:width .5s ease-in-out;position:absolute;bottom:-2pt;left:0}a.link-item:hover .link-name:after{width:100%}.link-note{color:#ffffffa0;font-size:12.5pt;font-weight:300;line-height:1.5}.hidden-panel{opacity:0;filter:blur(8px);visibility:hidden;transition:opacity 1s ease-in-out,filter 1s ease-in-out,visibility 0s linear 1s}.hidden-panel.show{opacity:1;filter:none;visibility:visible;transition-delay:0s}.profile-pic img{width:100%;height:100%}.profile-pic{float:right;border-radius:100%;width:5.5rem;height:5.5rem;margin:0 0 1rem 1.5rem;overflow:hidden}h1{color:#fff;font-weight:600}p,li{color:#fff;font-size:14.5pt;font-weight:300}.contact-items{margin-top:3em;margin-bottom:2em}.contact-item{color:#fff;align-items:center;width:fit-content;margin-bottom:1em;margin-left:5pt;text-decoration:none;display:flex}.contact-item img{width:19pt;height:19pt;margin-right:12pt}.contact-text{color:#fff;font-size:15pt;font-weight:400;position:relative}.contact-text:after{content:"";background-color:#fff;border-top:1.5pt solid #fff;border-radius:4pt;width:0%;height:0;transition:width .5s ease-in-out;position:absolute;bottom:0;left:0}a.contact-item:hover .contact-text:after{width:100%}:root{--page-fade:.6s}.page-panel-inner{display:grid}.page{color:#fff;transition:opacity var(--page-fade) ease-in-out, filter var(--page-fade) ease-in-out, visibility 0s linear var(--page-fade);grid-area:1/1;align-self:end}.page-panel:not(.show-contact) .contact-page,.page-panel.show-contact .links-page{opacity:0;filter:blur(6px);visibility:hidden}.page-panel.no-page-fade .page{transition:none!important}.page-panel:not(.show-contact) .links-page,.page-panel.show-contact .contact-page{transition-delay:var(--page-fade), var(--page-fade), 0s}.hud{box-sizing:border-box;pointer-events:none;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) auto;gap:2rem 3rem;padding:3.5rem;display:grid;position:fixed;inset:0}.hud>*{pointer-events:auto}.hud .hidden-panel{grid-area:1/1/-1;place-self:end start;width:min(44rem,100%);max-height:100%;overflow-y:auto}.hud .hidden-panel:not(.show){pointer-events:none}.logo-container{grid-area:1/2;place-self:start end;width:min(30rem,40vw)}.logo-primary{color:#fff;letter-spacing:.22em;text-align:right;white-space:nowrap;text-shadow:0 0 18px #0000004d;cursor:pointer;margin:0 -.22em 0 0;font-size:clamp(1.7rem,3.4vw,2.9rem);line-height:1;display:block}.logo-primary.animate-appear,.name-title.animate-appear,.nav .animate-appear{animation:1s ease-in-out generic-appear}.name-title{color:#fff;opacity:.72;letter-spacing:.3em;text-transform:uppercase;justify-content:flex-end;align-items:center;margin-top:1.3rem;margin-right:-.3em;font-size:.78rem;font-weight:300;display:flex}.text-sep{background:#fff;border-radius:10pt;width:2pt;height:2pt;margin:0 1.1rem 0 .8rem;display:inline-block}.nav{grid-area:2/2;justify-content:flex-end;align-self:end;align-items:baseline;gap:2.4rem;margin-right:-.32em;display:flex}.nav-link{color:#fff;letter-spacing:.32em;text-transform:uppercase;white-space:nowrap;cursor:pointer;opacity:.6;text-shadow:0 0 14px #00000059;background:0 0;border:0;padding:.5em 0;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;transition:opacity .4s;position:relative}.nav-link:after{content:"";transform-origin:0;border-top:1px solid #fff;transition:transform .5s;position:absolute;bottom:.1em;left:0;right:.32em;transform:scaleX(0)}.nav-link:hover,.nav-link:focus-visible,.nav-link[aria-current=page]{opacity:1;outline:0}.nav-link:hover:after,.nav-link:focus-visible:after,.nav-link[aria-current=page]:after{transform:scaleX(1)}.nav-link.quiet{opacity:.32;letter-spacing:.22em;margin-left:.6rem;font-size:.7rem}.nav-link.quiet:after{right:.22em}.nav-link.quiet:hover,.nav-link.quiet:focus-visible{opacity:.85}.grain-button{isolation:isolate;color:#fff;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;cursor:pointer;background:0 0;border:0;outline:0;align-items:center;gap:.6em;padding:.75em 1.5em;font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:400;text-decoration:none;display:inline-flex;position:relative}.grain-button:before,.grain-button:after{content:"";z-index:-1;background:var(--grain-fill-color,#4e5256);transition:opacity var(--grain-hover-transition,.4s) ease;position:absolute;inset:0}.grain-button:before{opacity:var(--grain-fill-opacity,.45);filter:url(#grain-edge)}.grain-button:after{opacity:0;filter:url(#grain-edge-crisp)}.grain-button[aria-current=page]:before{opacity:var(--grain-fill-opacity-hover,.7)}.grain-button:hover:before,.grain-button:focus-visible:before{opacity:0}.grain-button:hover:after,.grain-button:focus-visible:after{opacity:var(--grain-fill-opacity-hover,.7)}.grain-button[aria-current=page]{font-weight:500}.grain-button.small{letter-spacing:.1em;padding:.6em 1.2em;font-size:.72rem}.grain-button img{width:1.3em;height:1.3em}.grain-button.round{justify-content:center;width:3.5rem;height:3.5rem;padding:.9rem}.grain-button.round:before,.grain-button.round:after{border-radius:100%}.grain-button.round img{width:100%;height:100%}@media (width<=900px){.hud{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);row-gap:1.5rem;padding:2rem 1.75rem}.logo-container{grid-column:1;width:min(30rem,100%)}.hud .hidden-panel{grid-row:2}.nav{flex-wrap:wrap;grid-area:3/1;justify-content:flex-start;gap:.4rem 1.8rem;margin-right:0}.nav-link.quiet{margin-left:0}.overlay-container-rb{margin-bottom:2rem;margin-right:1.75rem}.text-panel-content{padding:1.5rem}.profile-pic{width:4rem;height:4rem}}@media (width<=500px){.name-title{font-size:.68rem}.grain-button{padding:.7em 1.1em;font-size:.8rem}.nav-link{letter-spacing:.22em;font-size:.75rem}.text-panel-content p,.text-panel-content .contact-text{font-size:11pt;line-height:1.6}h1{font-size:18pt}}.svg-defs{position:absolute}@font-face{font-family:Computer Modern Serif;src:url(/fonts/cmu/cmunrm.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Computer Modern Serif;src:url(/fonts/cmu/cmunti.woff)format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Computer Modern Serif;src:url(/fonts/cmu/cmunbx.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}.logo-primary,.text-panel h1{text-transform:uppercase;font-family:Computer Modern Serif,serif;font-weight:400}.text-panel h1{letter-spacing:.2em}.coords{z-index:100;color:#fff;font-family:monospace;position:fixed;top:0;right:0}
