@import url("https://cdn.jsdelivr.net/gh/aaaakshat/cm-web-fonts@latest/fonts.css");@import url("https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500;600;700;800&family=Fira+Code:wght@300;400;500;600;700&display=swap");*{margin:0;padding:0;box-sizing:border-box}:root{--title:"EB Garamond","Apple Garamond","Garamond","Times New Roman",serif;--cm:"Computer Modern Serif",Georgia,"Times New Roman",serif;--fira:"Fira Code",monospace;--black:#222;--gray:#666;--light:#999;--faint:#ddd;--bg:#fff}body{background:var(--bg);color:var(--black);font-family:var(--fira);font-size:14px;line-height:1.6}.splash{position:fixed;inset:0;background:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;animation:splashOut 3s ease-in-out forwards;pointer-events:none}.splash img{width:160px;opacity:0;animation:spinIn 2.6s ease-in-out forwards}@keyframes spinIn{0%{opacity:0;transform:rotate(-180deg) scale(.6)}25%{opacity:1;transform:rotate(0deg) scale(1)}75%{opacity:1;transform:rotate(0deg) scale(1)}to{opacity:0;transform:rotate(10deg) scale(1.03)}}@keyframes splashOut{0%,85%{opacity:1}to{opacity:0;pointer-events:none}}.page{max-width:812px;padding:60px 20px 80px}.page,.page-wide{margin:0 auto;text-align:center}.page-wide{max-width:75vw;padding:60px 40px 80px}@media (max-width:768px){.page-wide{max-width:100%;padding:40px 20px 60px}}h1.site-title{font-family:Times New Roman,Times,serif;font-size:clamp(46px,10vw,72px);font-weight:700;letter-spacing:10px;margin-bottom:4px}h2.project-title{font-family:var(--title);font-size:30px;font-weight:700;margin-bottom:2px}h3.project-subtitle{font-family:var(--fira);font-size:17px;font-weight:400;font-style:italic;color:var(--gray);margin-bottom:6px}h1.detail-title{font-family:var(--title);font-size:clamp(32px,5vw,48px);font-weight:700;margin-bottom:4px}.subtitle{font-size:14px;font-style:italic;color:#444;margin-bottom:2px}.author{font-size:12px;margin-bottom:2px}.date{font-size:11px;color:var(--light);margin-bottom:28px}hr.double{border:none;margin:28px 0;border-top:1.5px solid var(--black);border-bottom:1.5px solid var(--black);height:5px}hr,hr.between{border:none;border-top:1px solid var(--black);margin:28px 0}hr.thin{border-top:.5px solid var(--faint);margin:28px 0}.nav{font-size:11px;margin-bottom:28px}.nav a{color:var(--black);text-decoration:none;margin:0 10px}.nav a:hover{text-decoration:underline}.meta{font-size:11px;color:var(--light);margin-bottom:12px}.cover{width:100%;margin:14px 0}.cover img{width:100%;display:block}.caption{font-size:10px;font-style:italic;color:var(--light);margin-top:4px;margin-bottom:14px}.abstract{font-size:13px;margin-bottom:10px;text-align:center;max-width:672px;margin-left:auto;margin-right:auto;line-height:1.7}.files{font-size:12px;margin-top:8px}.files a{color:var(--black)}.files a:hover{text-decoration:underline}.stats{font-size:10px;color:#aaa;margin-top:6px}.two-up{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.two-up img{width:100%;display:block}.sign-in-link{position:fixed;top:16px;right:20px;font-size:10px;z-index:50}.sign-in-link a{color:var(--light);text-decoration:none}.sign-in-link a:hover{text-decoration:underline}footer.site-footer{font-size:10px;color:#aaa;margin-top:20px}.body-content{text-align:left;margin:0 auto;max-width:700px}.body-content p{margin-bottom:12px;line-height:1.75;font-size:14px}.body-content img{max-width:100%;margin:16px 0;display:block}.body-content ol,.body-content ul{margin:8px 0 12px 24px;font-size:14px;line-height:1.75}.body-content li{margin-bottom:4px}.body-content h2{font-size:22px;margin:28px 0 8px}.body-content h2,.body-content h3{font-family:var(--title);font-weight:700}.body-content h3{font-size:18px;margin:20px 0 6px}.form-group{margin-bottom:16px;text-align:left;max-width:360px;margin-left:auto;margin-right:auto}.form-group label{display:block;font-size:11px;color:var(--gray);margin-bottom:4px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 10px;font-family:var(--fira);font-size:13px;border:1px solid var(--faint);background:#fff;color:var(--black)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--black)}.btn{font-family:var(--fira);font-size:12px;padding:8px 20px;border:1px solid var(--black);background:#fff;color:var(--black);cursor:pointer}.btn:hover{background:var(--black);color:#fff}.xp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:9000;display:flex;align-items:center;justify-content:center}.xp-window{background:#ece9d8;border:2px solid #0054e3;width:420px;max-width:95vw;font-family:Tahoma,sans-serif;font-size:12px;box-shadow:2px 2px 8px rgba(0,0,0,.3)}.xp-titlebar{background:linear-gradient(180deg,#0a78d7,#0054e3 50%,#0a78d7);padding:4px 8px;justify-content:space-between;font-size:12px}.xp-close,.xp-titlebar{color:#fff;display:flex;align-items:center;font-weight:700}.xp-close{background:#e04343;border:1px solid #fff;width:18px;height:18px;justify-content:center;cursor:pointer;font-size:11px}.xp-body{padding:16px}.xp-body label{display:block;font-size:11px;margin-bottom:2px;color:#333}.xp-body input,.xp-body select,.xp-body textarea{width:100%;padding:4px 6px;margin-bottom:10px;font-family:Tahoma,sans-serif;font-size:12px;border:1px solid #7f9db9;background:#fff}.xp-body textarea{height:80px;resize:vertical}.xp-footer{padding:8px 16px;text-align:right;border-top:1px solid #aca899}.xp-btn{font-family:Tahoma,sans-serif;font-size:11px;padding:4px 20px;background:linear-gradient(180deg,#fff,#ece9d8);border:1px solid #aca899;cursor:pointer}.contact-icon{font-size:64px;cursor:pointer;transition:transform .2s;display:inline-block}.contact-icon:hover{transform:scale(1.1)}