@import"https://fonts.googleapis.com/css2?family=Kode+Mono:wght@400&display=swap";:root{color-scheme:light;--font-mono: "Kode Mono", monospace;--font-serif: "Charter", "Iowan Old Style", "Palatino Linotype", "Book Antiqua", "Georgia", serif;--font-primary: var(--font-serif);--font-secondary: var(--font-mono);--bg-primary: #ffffff;--bg-dark: #000000;--text-primary: #000000;--text-muted: #666666;--accent-blue: #4169E1;--accent-blue-hover: #2a4fc9;--grid-line: #e5e5e5;--card-bg: #ffffff;--nav-border: rgba(0, 0, 0, .55);--link-underline: rgba(65, 105, 225, .35);--glass-bg: rgba(255, 255, 255, .98);--glass-bg-navbar: rgba(255, 255, 255, .98);--glass-border: rgba(0, 0, 0, .12);--box-shadow: 0 1px 0 0 rgba(0, 0, 0, .08);--current-bg: var(--bg-primary);--current-text: var(--text-primary);--current-text-secondary: var(--text-muted);--current-theme-accent: var(--accent-blue);--current-theme-accent-hover: var(--accent-blue-hover);--current-link-color: var(--accent-blue);--current-icon-color: var(--text-primary);--current-glass-bg: var(--glass-bg);--current-glass-bg-navbar: var(--glass-bg-navbar);--current-glass-border: var(--glass-border);--current-box-shadow: var(--box-shadow);--current-bg-grid: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);--border-radius-main: 6px;--border-radius-small: 4px;--transition-speed: .25s}:root[data-theme=dark]{color-scheme:dark;--bg-primary: #0d0d0f;--text-primary: #ededed;--text-muted: #9c9c9c;--accent-blue: #7b96ff;--accent-blue-hover: #a3b6ff;--grid-line: #1d1d22;--card-bg: #131316;--nav-border: rgba(255, 255, 255, .45);--link-underline: rgba(123, 150, 255, .4);--glass-bg: rgba(19, 19, 22, .98);--glass-bg-navbar: rgba(13, 13, 15, .98);--glass-border: rgba(255, 255, 255, .14);--box-shadow: 0 1px 0 0 rgba(255, 255, 255, .06)}.research-statement-toggle{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 16px;cursor:pointer;border:1px solid var(--text-primary);background:transparent;color:var(--text-primary);list-style:none;display:inline-block;margin-bottom:1.5rem}.research-statement-toggle::-webkit-details-marker{display:none}.research-statement-toggle:before{content:"+ "}details[open]>.research-statement-toggle:before{content:"- "}.research-statement-toggle:hover{background:var(--current-text);color:var(--current-bg)}html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}body{font-family:var(--font-primary);margin:0;padding:0;background-color:var(--current-bg);color:var(--current-text);line-height:1.7;transition:background-color var(--transition-speed) ease,color var(--transition-speed) ease;overflow-x:hidden;background-image:var(--current-bg-grid);background-size:40px 40px;background-attachment:scroll;width:100%;min-height:100vh}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;line-height:inherit;cursor:pointer}h1,h2,h3,h4,h5,h6{font-family:var(--font-secondary);color:var(--current-text);margin-top:1.5em;margin-bottom:.7em;font-weight:400;text-transform:uppercase;letter-spacing:.02em}h1{font-size:5rem;text-align:center}h2{font-size:2em;padding-bottom:.3em;position:relative;border-bottom:1px solid var(--grid-line);margin-bottom:1em}h2:after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:3px;background:var(--current-theme-accent)}h3{font-size:1.6em;color:var(--current-text)}h4{font-size:1.3em}p{margin-bottom:1.2em;color:var(--current-text)}a{color:var(--current-link-color);text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:2px;transition:color var(--transition-speed) ease,opacity .2s ease-out;word-break:break-word;overflow-wrap:break-word}a:hover,a:focus{color:var(--current-theme-accent-hover);opacity:1;text-decoration-color:var(--current-theme-accent)}i.fas,i.fab,i.far,i.fal{color:var(--current-icon-color)!important}.btn i.fas,.btn i.fab{color:currentColor!important}.btn-icon i.fas,.btn-icon i.fab{color:var(--current-icon-color)!important}.btn-icon:hover i.fas,.btn-icon:hover i.fab{color:var(--current-bg)!important}ul,ol{margin-bottom:1em;padding-left:20px}li{margin-bottom:.5em}img{max-width:100%;height:auto;border-radius:var(--border-radius-small)}header{position:sticky;top:0;z-index:1000;padding:10px 0;height:auto}nav{max-width:900px;margin:0 auto;padding:.8em 1.5em;position:relative;background:color-mix(in srgb,var(--current-glass-bg-navbar) 18%,transparent);border:1.5px solid var(--nav-border);border-radius:var(--border-radius-main);box-shadow:0 1px #00000014;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%);display:flex;justify-content:space-between;align-items:center;transition:background var(--transition-speed) ease,border var(--transition-speed) ease,box-shadow var(--transition-speed) ease}nav .logo a{font-family:var(--font-secondary);font-size:1.6em;font-weight:700;color:var(--current-text);text-decoration:none;white-space:nowrap;transition:transform .3s ease,color var(--transition-speed) ease}nav .logo a .logo-icon{width:32px;height:32px;margin-right:8px;display:inline-block;vertical-align:middle}nav .logo a:hover{transform:scale(1.03);color:var(--current-theme-accent-hover)}header>nav>ul{list-style:none;padding:0;margin:0;display:flex}header>nav>ul li{margin-left:20px}header>nav>ul li a{color:var(--current-text);text-decoration:none;font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.85em;padding:.4em .6em;border-radius:var(--border-radius-small);transition:color var(--transition-speed) ease,background-color var(--transition-speed) ease,transform .2s ease;position:relative}body[data-page=home] nav a[href="/"],body[data-page=home] .mobile-menu-links a[href="/"],body[data-page=publications] nav a[href="/publications"],body[data-page=publications] .mobile-menu-links a[href="/publications"],body[data-page=education-experience] nav a[href="/education-experience"],body[data-page=education-experience] .mobile-menu-links a[href="/education-experience"],body[data-page=blogs] nav a[href="/blogs"],body[data-page=blogs] .mobile-menu-links a[href="/blogs"],body[data-page=contact] nav a[href="/contact"],body[data-page=contact] .mobile-menu-links a[href="/contact"]{color:var(--current-theme-accent)}body[data-page=home] header>nav a[href="/"]:after,body[data-page=publications] header>nav a[href="/publications"]:after,body[data-page=education-experience] header>nav a[href="/education-experience"]:after,body[data-page=blogs] header>nav a[href="/blogs"]:after,body[data-page=contact] header>nav a[href="/contact"]:after{width:100%;left:0}header>nav>ul li a:after{content:"";position:absolute;width:0;height:2px;bottom:-3px;left:50%;background-color:var(--current-theme-accent);transition:width .3s ease,left .3s ease,background-color var(--transition-speed) ease}header>nav>ul li a:hover:after{width:100%;left:0}header>nav>ul li a:hover{color:var(--current-theme-accent)}#mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;width:36px;height:36px;position:relative}.hamburger,.hamburger:before,.hamburger:after{display:block;width:20px;height:2px;background:var(--current-text);border-radius:1px;transition:all .3s ease;position:absolute;left:8px}.hamburger{top:17px}.hamburger:before{content:"";top:-6px}.hamburger:after{content:"";top:6px}#mobile-menu-toggle.open .hamburger{background:transparent}#mobile-menu-toggle.open .hamburger:before{top:0;transform:rotate(45deg)}#mobile-menu-toggle.open .hamburger:after{top:0;transform:rotate(-45deg)}#mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:998;opacity:0;transition:opacity .3s ease;pointer-events:none}#mobile-overlay.open{opacity:1;pointer-events:auto}#mobile-menu{position:fixed;top:0;right:0;width:290px;max-width:82vw;height:100vh;height:100dvh;background:var(--bg-primary);background-image:var(--current-bg-grid);background-size:20px 20px;z-index:999;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);pointer-events:none;display:flex;flex-direction:column;border-left:1px solid var(--grid-line)}#mobile-menu.open{transform:translate(0);pointer-events:auto}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--grid-line)}.mobile-menu-title{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--current-text)}.mobile-menu-title .terminal-prompt{color:var(--current-theme-accent);margin-right:.45em}#mobile-menu-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:4px 8px;transition:color .2s ease}#mobile-menu-close:hover{color:var(--text-primary)}.mobile-menu-links{display:flex;flex-direction:column;flex:1;padding:.6rem 0}.mobile-menu-links a{display:flex;align-items:center;gap:.9em;padding:.95rem 1.5rem .95rem 1.2rem;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.05em;color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--grid-line);border-left:3px solid transparent;transition:background .15s ease,border-color .15s ease;opacity:0;transform:translate(16px)}#mobile-menu.open .mobile-menu-links a{opacity:1;transform:none;transition:opacity .3s ease,transform .3s ease,background .15s ease,border-color .15s ease}#mobile-menu.open .mobile-menu-links a:nth-child(1){transition-delay:.06s}#mobile-menu.open .mobile-menu-links a:nth-child(2){transition-delay:.12s}#mobile-menu.open .mobile-menu-links a:nth-child(3){transition-delay:.18s}#mobile-menu.open .mobile-menu-links a:nth-child(4){transition-delay:.24s}#mobile-menu.open .mobile-menu-links a:nth-child(5){transition-delay:.3s}.mobile-menu-links a:active{background:color-mix(in srgb,var(--current-theme-accent) 8%,transparent)}.mm-mode{font-size:.68rem;color:var(--text-muted);opacity:.75;flex-shrink:0;width:5ch;white-space:nowrap;letter-spacing:0}.mm-mode.mm-file{color:var(--current-theme-accent);opacity:1}.mm-name{font-weight:600;flex:1}.mm-arrow{color:var(--current-theme-accent);font-size:.7rem;opacity:0;transition:opacity .15s ease}body[data-page=home] #mobile-menu a[href="/"],body[data-page=publications] #mobile-menu a[href="/publications"],body[data-page=education-experience] #mobile-menu a[href="/education-experience"],body[data-page=contact] #mobile-menu a[href="/contact"]{border-left-color:var(--current-theme-accent);background:color-mix(in srgb,var(--current-theme-accent) 6%,transparent)}body[data-page=home] #mobile-menu a[href="/"] .mm-arrow,body[data-page=publications] #mobile-menu a[href="/publications"] .mm-arrow,body[data-page=education-experience] #mobile-menu a[href="/education-experience"] .mm-arrow,body[data-page=contact] #mobile-menu a[href="/contact"] .mm-arrow{opacity:1}.mm-status{margin:0;padding:.7rem 1.5rem;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.mobile-menu-footer{padding:.9rem 1.5rem 2rem;border-top:1px solid var(--grid-line);display:flex;flex-wrap:wrap;align-items:baseline;gap:.85rem}.mobile-menu-footer .mm-mode{width:auto}.mobile-menu-footer a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;color:var(--text-muted);text-decoration:none;transition:color .15s ease}.mobile-menu-footer a:hover{color:var(--current-theme-accent)}main{max-width:900px;margin:2.5em auto 1em;padding:0 5% 5%;overflow-x:hidden;width:100%;box-sizing:border-box}.card-style,.content-section{background:var(--card-bg);border:1px solid var(--grid-line);padding:2rem 2.5rem;margin-bottom:1.5em;border-radius:var(--border-radius-main);box-shadow:none;overflow-wrap:break-word;word-wrap:break-word}.card-style:hover{transform:none;box-shadow:none}.hero-section{text-align:left;padding:2rem 2.5rem;margin-top:-1.5em;color:var(--current-text);border:none;background:transparent;margin-bottom:0}.hero-section h1{color:var(--current-text);font-family:var(--font-mono);font-weight:400;font-size:clamp(2.6rem,6vw,4.2rem);line-height:.95;letter-spacing:-.01em;text-transform:uppercase;margin-bottom:.2em;text-shadow:none;text-align:left}.hero-section .subtitle,.hero-section .location{font-family:var(--font-serif);font-size:1.05rem;margin-bottom:.5em;color:var(--text-muted)}.hero-section .location{font-size:1em;margin-bottom:1.5em}.hero-section .profile-pic{width:140px;height:140px;border-radius:50%;object-fit:cover;margin-bottom:1em;border:3px solid var(--current-glass-border);box-shadow:0 0 15px #0000001a}.social-links{margin-top:1.5em;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px}.social-links .btn,.btn{background-color:var(--card-bg);background-image:linear-gradient(var(--current-theme-accent),var(--current-theme-accent));background-size:0% 3px;background-repeat:no-repeat;background-position:left bottom;color:var(--current-text);padding:.55em 1.1em;border-radius:0;text-decoration:none;font-family:var(--font-mono);font-weight:600;text-transform:uppercase;letter-spacing:.08em;transition:background-size .22s cubic-bezier(.4,0,.2,1),color .18s ease,transform .1s ease;border:1.5px solid var(--current-text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;position:relative;overflow:hidden;box-shadow:none;font-size:clamp(.7rem,2vw,.8rem);min-height:36px;min-width:fit-content;flex-shrink:0;white-space:nowrap;backdrop-filter:none;-webkit-backdrop-filter:none}.btn:before,.btn:after{content:"";position:absolute;width:7px;height:7px;pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn:before{top:3px;left:3px;border-top:2px solid var(--current-theme-accent);border-left:2px solid var(--current-theme-accent)}.btn:after{bottom:3px;right:3px;border-bottom:2px solid var(--current-theme-accent);border-right:2px solid var(--current-theme-accent)}.social-links .btn:hover,.btn:hover{background-color:var(--card-bg);background-size:100% 3px;color:var(--current-theme-accent);text-decoration:none;border-color:var(--current-theme-accent);transform:none;box-shadow:none}.btn:hover:before{top:1px;left:1px;width:10px;height:10px}.btn:hover:after{bottom:1px;right:1px;width:10px;height:10px}.btn:active{transform:scale(.97)}.btn-svg-icon{width:14px;height:14px;vertical-align:-2px;fill:currentColor}.btn-icon{padding:.4em .75em;background-color:transparent;color:var(--current-text);border:1px solid var(--current-text);border-radius:0;transition:all .25s ease;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-family:var(--font-mono);font-size:clamp(.7rem,1.8vw,.8rem);text-transform:uppercase;letter-spacing:.08em;min-height:34px;white-space:nowrap;text-decoration:none;flex-shrink:0;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1);cursor:pointer}.btn-icon:hover{background-color:var(--current-text);color:var(--current-bg);border-color:var(--current-text);transform:none;text-decoration:none;box-shadow:none}.btn-icon:hover i{color:var(--current-bg)!important}.news-list li{border-left:3px solid var(--current-theme-accent);padding-left:15px;margin-bottom:1em}.news-list .date{font-weight:700;color:var(--current-text-secondary);display:block;font-size:.9em}#publication-update .publication-item-home{padding:10px 0}#publication-update .publication-title-home{font-size:1.3em;color:var(--current-text);margin-bottom:.4em;word-break:break-word;overflow-wrap:break-word}#publication-update .publication-authors-home{font-style:italic;color:var(--current-text-secondary);margin-bottom:.4em;font-size:.95em;word-break:break-word;overflow-wrap:break-word}#publication-update .publication-authors-home strong{color:var(--current-text);font-weight:700}#publication-update .publication-venue-home{margin-bottom:.8em;font-size:.9em}#publication-update .publication-links-home{display:flex;flex-wrap:wrap;gap:10px;align-items:center}#publication-update .publication-links-home .btn,#publication-update .publication-links-home .btn-icon{font-size:.9em;padding:.5em 1em}.publication-item{margin-bottom:2em;padding-bottom:1.5em;border-bottom:1px dashed var(--current-glass-border)}.publication-item:last-child{border-bottom:none}.publication-title{font-size:1.4em;margin-bottom:.3em;color:var(--current-text);word-break:break-word;overflow-wrap:break-word}.publication-authors{font-style:italic;color:var(--current-text-secondary);margin-bottom:.3em;word-break:break-word;overflow-wrap:break-word}.publication-authors strong{color:var(--current-text);font-weight:700}.publication-venue{margin-bottom:.5em;word-break:break-word;overflow-wrap:break-word}.interest-list li{margin-bottom:.8em}.entry{margin-bottom:2em;position:relative;padding-left:25px}.entry:before{content:"";position:absolute;left:0;top:8px;width:12px;height:12px;background:var(--current-theme-accent);border-radius:50%;border:2px solid var(--current-bg)}.entry h3{margin-top:0;margin-bottom:.2em;font-size:1.3em;color:var(--current-theme-accent)}.entry .institution{font-weight:700;color:var(--current-text-secondary);margin-bottom:.2em}.entry .dates{font-size:.9em;color:var(--current-theme-accent);margin-bottom:.5em}.entry ul{padding-left:15px;list-style-type:disc}.entry ul li{font-size:.95em}.project-entry .tech-stack{font-style:italic;color:var(--current-text-secondary);margin-bottom:.5em}.project-entry .project-date{float:right;font-size:.9em;color:var(--current-theme-accent)}.blog-post-summary{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.blog-post-summary:hover{transform:translateY(-2px);box-shadow:0 6px 20px 0 var(--current-box-shadow)}.blog-post-summary h3{margin-top:0;color:var(--current-theme-accent);transition:color .3s ease}.blog-post-summary:hover h3{color:var(--current-theme-accent-hover)}.reading-progress{position:fixed;top:0;left:0;width:0;height:4px;background:linear-gradient(90deg,#000,#000);z-index:1001;transition:width .1s ease}.reading-progress-bar{width:100%;height:100%;background:inherit}.blog-content-wrapper,.blog-content-body{width:100%;max-width:none}.blog-content-body .table-wrapper{max-width:100%}.blog-controls{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch;margin-bottom:30px;padding:25px;background:var(--current-glass-bg);-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid var(--current-glass-border);border-radius:12px;box-shadow:var(--current-box-shadow)}.search-container{position:relative;flex:1 1 280px;min-width:280px;max-width:450px}.search-container input{width:100%;padding:14px 18px 14px 50px;border:1px solid var(--current-glass-border);border-radius:10px;background:var(--current-bg);font-size:14px;transition:all .3s ease;color:var(--current-text);box-sizing:border-box}.search-container input:focus{outline:none;border-color:var(--current-theme-accent);box-shadow:0 0 0 3px #0000001f}.search-container i{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--current-text-secondary);font-size:14px}.clear-search{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--current-text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;font-size:14px}.clear-search:hover{background:#0000001f;color:var(--current-theme-accent)}.sort-container{flex:0 1 220px;min-width:220px;max-width:280px}.sort-container select{width:100%;padding:14px 18px;border:1px solid var(--current-glass-border);border-radius:10px;background:var(--current-bg);font-size:14px;cursor:pointer;transition:all .3s ease;color:var(--current-text);box-sizing:border-box}.sort-container select:focus{outline:none;border-color:var(--current-theme-accent);box-shadow:0 0 0 3px #0000001f}.blog-meta{display:flex;flex-wrap:wrap;gap:25px;align-items:center;margin:25px 0;padding:18px 25px;background:var(--current-glass-bg);border:1px solid var(--current-glass-border);border-radius:10px;border-left:4px solid var(--current-theme-accent);font-size:14px;color:var(--current-text-secondary)}.meta-item{display:flex;align-items:center;gap:8px}.meta-item i{color:var(--current-theme-accent);font-size:14px}.reading-time{font-weight:600;color:var(--current-theme-accent)}.math-indicator{background:#0000001f;color:var(--current-theme-accent);padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.blog-keywords{margin:20px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.blog-keywords i{color:var(--current-theme-accent);font-size:14px}.keyword{background:#0000001f;color:var(--current-theme-accent);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;border:1px solid rgba(0,0,0,.2)}.blog-actions{display:flex;justify-content:center;gap:20px;margin:2em 0;padding:2em 0;border-top:2px solid #e5e5e5;flex-wrap:wrap}.action-button{display:flex;align-items:center;gap:10px;padding:12px 24px;background:var(--current-glass-bg);border:1px solid var(--current-text);color:var(--current-text);border-radius:10px;cursor:pointer;transition:all .3s ease;font-size:14px;text-decoration:none;font-weight:600;text-transform:uppercase;letter-spacing:.08em;box-shadow:var(--current-box-shadow)}.action-button:hover{background:var(--current-text);color:var(--current-bg);transform:translateY(-2px);box-shadow:0 10px 24px #0003;text-decoration:none}.action-button i{font-size:14px}.blog-content-body{line-height:1.8;font-size:16px;max-width:100%;margin:0 auto;position:relative;z-index:1}.blog-content-body{word-wrap:break-word;overflow-wrap:break-word}.blog-content-body *:not(pre):not(code){text-rendering:optimizeLegibility}.blog-content-body h1{color:var(--current-text);margin-top:2em;margin-bottom:1em;scroll-margin-top:120px;font-size:3rem;line-height:.95;letter-spacing:-.05em;position:relative;z-index:1}.blog-content-body h2,.blog-content-body h3,.blog-content-body h4{color:var(--current-text);margin-top:2.5em;margin-bottom:1em;scroll-margin-top:120px;position:relative;z-index:1}.blog-content-body h2{padding-bottom:.3em;border-bottom:2px solid var(--current-theme-accent)}.blog-content-body pre,.blog-content-body code,.blog-content-body blockquote,.blog-content-body p,.blog-content-body ul,.blog-content-body ol{position:relative;z-index:1}.blog-content-body pre{background-color:var(--bg-primary);padding:1.2em;border-radius:8px;overflow-x:auto;border:1px solid #e5e5e5;margin:1.5em 0;position:relative;z-index:1;color:var(--text-primary);font-family:Courier New,Courier,monospace;line-height:1.5;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;transform:translateZ(0)}.blog-content-body code{background-color:var(--bg-primary);padding:.2em .4em;border-radius:4px;font-family:Courier New,Courier,monospace;position:relative;z-index:1;color:var(--text-primary);font-size:.9em;border:1px solid #e5e5e5}.blog-content-body pre code{background-color:transparent;padding:0;color:inherit}.blog-content-body details{background:#f7f1e8b3;border:1px solid #e5e5e5;border-radius:8px;margin:1.5em 0;padding:0;position:relative;z-index:1}.dark-mode .blog-content-body details{background:#2d3436b3;border-color:#ffffff26}.blog-content-body summary{background:#0000001a;border-bottom:1px solid #e5e5e5;border-radius:8px 8px 0 0;color:#000;cursor:pointer;font-weight:600;padding:12px 18px;-webkit-user-select:none;user-select:none;transition:all .3s ease}.dark-mode .blog-content-body summary{background:#0003;border-bottom-color:#ffffff26;color:#000}.blog-content-body summary:hover{background:#00000026}.dark-mode .blog-content-body summary:hover{background:#0000004d}.blog-content-body details[open] summary{border-radius:8px 8px 0 0}.blog-content-body details>*:not(summary){padding:15px 18px}.blog-content-body details pre{margin:0;border-radius:0 0 8px 8px}.blog-content-body table{width:100%;border-collapse:collapse;margin:1.5em 0;background:#f7f1e8b3;border:1px solid #e5e5e5;border-radius:8px;overflow:hidden;position:relative;z-index:1;font-size:.95em;display:table}.blog-content-body .table-wrapper{overflow-x:auto;margin:1.5em 0;border-radius:8px;border:1px solid #e5e5e5;background:#f7f1e8b3;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;transform:translateZ(0)}.blog-content-body .table-wrapper{position:relative}.blog-content-body .table-wrapper::-webkit-scrollbar{height:8px}.blog-content-body .table-wrapper::-webkit-scrollbar-track{background:#0000001a;border-radius:4px}.blog-content-body .table-wrapper::-webkit-scrollbar-thumb{background:#000;border-radius:4px;border:2px solid rgba(0,0,0,.1)}.blog-content-body .table-wrapper::-webkit-scrollbar-thumb:hover{background:#000}.blog-content-body .table-wrapper:before,.blog-content-body .table-wrapper:after{content:"";position:absolute;top:0;bottom:0;width:20px;pointer-events:none;z-index:2;transition:opacity .3s ease}.blog-content-body .table-wrapper:before{left:0;background:linear-gradient(to right,rgba(247,241,232,.8),transparent)}.blog-content-body .table-wrapper:after{right:0;background:linear-gradient(to left,rgba(247,241,232,.8),transparent)}.dark-mode .blog-content-body .table-wrapper:before{background:linear-gradient(to right,rgba(45,52,54,.8),transparent)}.dark-mode .blog-content-body .table-wrapper:after{background:linear-gradient(to left,rgba(45,52,54,.8),transparent)}.blog-content-body .table-wrapper:not(.scrollable):before,.blog-content-body .table-wrapper:not(.scrollable):after{opacity:0}.blog-content-body .table-wrapper table{margin:0;border:none;background:transparent;min-width:600px}.dark-mode .blog-content-body table{background:#2d3436b3;border-color:#ffffff26}.blog-content-body th,.blog-content-body td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e5e5;vertical-align:top;position:relative;z-index:1}.dark-mode .blog-content-body th,.dark-mode .blog-content-body td{border-bottom-color:#ffffff26}.blog-content-body td,.blog-content-body th{word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.blog-content-body td mjx-container,.blog-content-body th mjx-container{white-space:nowrap}.floating-action-button{position:fixed;bottom:30px;right:30px;z-index:1000;display:none;transition:transform .3s ease}.fab-main{width:60px;height:60px;background:linear-gradient(135deg,#000,#000);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;cursor:pointer;box-shadow:0 4px 20px #0006;transition:all .3s ease;border:none}.fab-main:hover{transform:scale(1.1);box-shadow:0 6px 25px #00000080}.fab-menu{position:absolute;bottom:70px;right:0;display:flex;flex-direction:column;gap:15px;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease}.floating-action-button.active .fab-menu{opacity:1;visibility:visible;transform:translateY(0)}.floating-action-button.active .fab-main{transform:rotate(45deg)}.fab-item{width:50px;height:50px;background:#000000e6;border:none;border-radius:50%;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 10px #0003}.fab-item:hover{background:#000;transform:scale(1.1)}.code-block-wrapper{position:relative;margin:1.5em 0}.copy-code-btn{position:absolute;top:10px;right:10px;background:#000000b3;border:none;color:#fff;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:12px;opacity:0;transition:all .3s ease;z-index:10}.code-block-wrapper:hover .copy-code-btn{opacity:1}.copy-code-btn:hover{background:#000000e6}.copy-code-btn.copied{background:#28a745;transform:scale(1.1)}.reading-line{position:fixed;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#000000,transparent);pointer-events:none;z-index:999;display:none;opacity:.7}.highlighted-paragraph{background:linear-gradient(120deg,#ffff004d,#ffff001a);padding:.5em;border-radius:4px;transition:all .3s ease;position:relative}.highlighted-paragraph:before{content:"✨";position:absolute;left:-25px;top:50%;transform:translateY(-50%);opacity:.7}.focus-mode header,.focus-mode .blog-actions,.focus-mode .reading-progress{opacity:.3;transition:opacity .3s ease}.focus-mode header:hover,.focus-mode .blog-actions:hover{opacity:1}.focus-mode .blog-content-body{font-size:18px;line-height:1.9;max-width:70ch;margin:0 auto}.highlight-mode{cursor:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><rect x="2" y="2" width="16" height="16" fill="yellow" opacity="0.5"/></svg>'),auto}.notification{position:fixed;top:100px;right:30px;background:#000000f2;color:#fff;padding:12px 20px;border-radius:25px;font-size:14px;z-index:1001;opacity:0;transform:translate(100%);transition:all .3s ease;box-shadow:0 4px 20px #0003}.notification.show{opacity:1;transform:translate(0)}.fade-in{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.about-facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:22px;margin-top:1em}.fact-item{display:grid;grid-template-columns:42px 1fr;align-items:flex-start;gap:12px;padding:18px 18px 16px;background:var(--current-glass-bg);border:1px solid var(--current-glass-border);border-radius:var(--border-radius-small);min-height:120px;box-shadow:0 4px 18px #00000012;transition:transform .25s ease,box-shadow .3s ease,background .3s ease;overflow:hidden}.fact-item i{font-size:1.4em;color:var(--current-theme-accent);flex-shrink:0;margin-top:2px}.fact-item .label{font-size:.7em;text-transform:uppercase;letter-spacing:.6px;font-weight:600;color:var(--current-text-secondary);margin-bottom:4px}.fact-item .value{word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;min-width:0}.fact-item .value a{text-decoration:none;word-break:break-all}.fact-item:hover{transform:translateY(-4px);box-shadow:0 10px 28px #4a90e22e}@media(max-width:420px){.about-facts-grid{grid-template-columns:1fr;gap:16px}.fact-item{padding:14px 16px;grid-template-columns:36px 1fr;gap:10px}.contact-details-grid{grid-template-columns:1fr;gap:16px}.contact-detail-item{padding:14px 16px;grid-template-columns:36px 1fr;gap:10px}}.contact-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-top:1.2em}.contact-detail-item{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:14px;padding:16px 20px;background:var(--card-bg);border:1px solid var(--grid-line);border-radius:var(--border-radius-small);box-shadow:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}.contact-detail-item i{font-size:1.25em;color:var(--current-theme-accent)!important;justify-self:center}.contact-detail-item:hover{transform:translate(-2px,-2px);border-color:var(--current-theme-accent);box-shadow:4px 4px 0 var(--current-theme-accent)}.contact-detail-item .label{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--current-text-secondary);margin-bottom:4px}.contact-detail-item .value{overflow-wrap:anywhere;min-width:0;line-height:1.45}.contact-detail-item .value a{text-decoration:none;overflow-wrap:anywhere}button:focus,a:focus,input:focus{outline:2px solid var(--current-theme-accent);outline-offset:2px;border-radius:4px}body,header,nav,.card-style,.content-section,.modern-footer,.footer-section{transition:background-color .3s ease,color .3s ease,border-color .3s ease}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--current-glass-bg);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--current-text-secondary);border-radius:10px;border:2px solid var(--current-glass-bg)}::-webkit-scrollbar-thumb:hover{background:var(--current-theme-accent)}@media screen and (max-width:768px){:root{--border-radius-main: 12px;--border-radius-small: 8px}body{padding-top:10px;font-size:16px;line-height:1.6;background-attachment:scroll!important}header{padding:10px 0}nav{margin:0 10px;padding:.6em 1em;flex-direction:row;justify-content:space-between;align-items:center}nav .logo a{font-size:1.3em}nav .logo svg{width:24px;height:24px;margin-right:6px}header>nav>ul{display:none}#mobile-menu-toggle{display:block!important}#mobile-overlay{display:block}main{margin:1em auto;padding:0 15px;max-width:100%}.card-style,.content-section{padding:20px 18px;margin-bottom:1.5em;border-radius:var(--border-radius-main)}.card-style:hover{transform:none}h1{font-size:2em!important;line-height:1.2;margin-bottom:.5em}h2{font-size:1.6em!important;line-height:1.3;margin-top:1em}h3{font-size:1.3em!important;line-height:1.4}h4{font-size:1.1em!important}p{font-size:1em;line-height:1.6;margin-bottom:1em}.hero-section{padding:1.5em 1em;text-align:center}.hero-section h1{font-size:2.2em!important;margin-bottom:.3em}.hero-section .subtitle{font-size:1.1em!important;margin-bottom:.5em;line-height:1.4}.hero-section .location{font-size:.95em!important;margin-bottom:1.2em}.social-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;justify-content:center;max-width:340px;margin:1.5em auto 0}.social-links .btn{padding:.5em .9em;font-size:clamp(.75rem,2.5vw,.85rem);text-align:center;justify-content:center;white-space:nowrap;min-height:40px;display:flex;align-items:center;margin:.2em;cursor:pointer;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.btn{padding:.5em .9em;font-size:clamp(.75rem,2.5vw,.85rem);min-height:40px;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.social-links .btn i{margin-right:4px;font-size:1em}.publication-item,.publication-item-home{padding-bottom:1.2em;margin-bottom:1.5em}.publication-title,.publication-title-home{font-size:1.2em!important;line-height:1.3;margin-bottom:.5em}.publication-authors,.publication-authors-home{font-size:.9em;line-height:1.4;margin-bottom:.5em}.publication-venue,.publication-venue-home{font-size:.85em;margin-bottom:.8em}.publication-links,.publication-links-home{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.publication-links .btn-icon,.publication-links-home .btn-icon,.publication-links .btn,.publication-links-home .btn{font-size:clamp(.85rem,2.8vw,.95rem);padding:.7em 1em;flex:1;min-width:80px;min-height:44px;text-align:center;justify-content:center;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1);cursor:pointer}.news-list li{padding-left:12px;margin-bottom:1.2em;border-left-width:2px}.news-list .date{font-size:.85em;display:block;margin-bottom:.3em}.blog-content-body table,table{font-size:.85em;display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.blog-content-body .table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px;margin:1em 0}.blog-content-body th,.blog-content-body td,th,td{padding:8px 12px;min-width:120px}.interest-list li{margin-bottom:1em;font-size:.95em;line-height:1.5}.blog-content-body pre,pre{padding:1em;font-size:.85em;overflow-x:auto;-webkit-overflow-scrolling:touch}.blog-content-body code,code{font-size:.85em;padding:.2em .3em}input,select,textarea{font-size:16px!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--border-radius-small)}.blog-controls{flex-direction:column;gap:15px;padding:20px}.search-container,.sort-container{min-width:100%;max-width:100%}.blog-meta{flex-direction:column;gap:15px;padding:15px 20px;font-size:.9em}.meta-item{justify-content:center}.entry{padding-left:20px;margin-bottom:1.5em}.entry:before{left:0;width:8px;height:8px;top:10px}.entry h3{font-size:1.2em!important;line-height:1.3}.entry .institution{font-size:.95em;line-height:1.4}.entry .dates{font-size:.85em}.entry ul{font-size:.9em;line-height:1.5}.project-entry .project-date{float:none;display:block;margin-bottom:.5em}}@media screen and (min-width:769px)and (max-width:1024px){nav{margin:0 20px;padding:.7em 1.3em}main{margin:1.5em auto;padding:0 30px;max-width:100%}.card-style,.content-section{padding:22px 25px}.social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:600px;margin:1.5em auto 0}.social-links .btn{flex:1;min-width:120px;padding:.5em .95em;font-size:clamp(.75rem,2vw,.85rem);min-height:38px;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.btn{padding:.5em .95em;font-size:clamp(.75rem,2vw,.85rem);min-height:38px}h1{font-size:2.2em!important}h2{font-size:1.8em!important}.hero-section h1{font-size:2.6em!important}}@media screen and (max-width:480px){body{font-size:15px}nav{margin:0 5px;padding:.5em .8em}nav .logo a{font-size:1.2em}main{padding:0 10px}.card-style,.content-section{padding:15px;margin-bottom:1.2em}.hero-section{padding:1.2em .8em}.hero-section h1{font-size:1.8em!important}.hero-section .subtitle{font-size:1em!important}.social-links{grid-template-columns:1fr;gap:10px;max-width:280px}.social-links .btn{padding:.55em .95em;font-size:clamp(.75rem,3vw,.85rem);min-height:42px;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1);width:100%;justify-content:center}.btn{padding:.55em .95em;font-size:clamp(.75rem,3vw,.85rem);min-height:42px;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.publication-links,.publication-links-home{flex-direction:column;align-items:stretch}.publication-links .btn-icon,.publication-links-home .btn-icon,.publication-links .btn,.publication-links-home .btn{width:100%;margin-bottom:8px;touch-action:auto;-webkit-tap-highlight-color:rgba(0,0,0,.1);min-height:48px;font-size:.9rem}h1{font-size:1.6em!important}h2{font-size:1.4em!important}h3{font-size:1.2em!important}}@media screen and (max-width:320px){nav .logo a{font-size:1.1em}nav .logo svg{width:20px;height:20px}.hero-section h1{font-size:1.6em!important}.social-links{max-width:250px}.card-style,.content-section{padding:12px}}@media screen and (-webkit-min-device-pixel-ratio:2),screen and (min-resolution:192dpi){nav .logo svg,.footer-logo svg{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media screen and (max-width:768px){button,.btn,.btn-icon,a{min-height:44px;min-width:44px}button:focus,a:focus,input:focus{outline:3px solid var(--current-theme-accent);outline-offset:2px}p,li{line-height:1.6}}@media print{.social-links{display:none}#mobile-menu,#mobile-menu-toggle{display:none!important}header>nav>ul{display:flex!important}.card-style{break-inside:avoid;box-shadow:none;border:1px solid #ccc;margin-bottom:1em}}.modern-footer{border-top:1px solid var(--grid-line);padding:3.5rem 0 2rem;margin-top:4rem;background:transparent}.footer-terminal-window{max-width:900px;margin:0 auto 3rem;background:var(--card-bg);border:1.5px solid var(--current-text);border-radius:var(--border-radius-main);box-shadow:6px 6px 0 var(--current-theme-accent);overflow:hidden}.terminal-titlebar{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--grid-line);background:var(--current-glass-bg)}.terminal-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--current-text);background:transparent}.terminal-title{margin-left:10px;font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--current-text-secondary)}.terminal-body{padding:14px 18px 16px;font-family:var(--font-mono);font-size:.78rem;line-height:1.85;min-height:5.8em;overflow:hidden}.terminal-body .t-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terminal-path{color:var(--current-text-secondary)}.terminal-prompt{color:var(--current-theme-accent)}.terminal-body .t-cmd{color:var(--current-text)}.terminal-body .t-result{color:var(--current-text-secondary)}.terminal-body .t-ok{color:var(--current-theme-accent);font-weight:700}.terminal-body .t-arrow{color:var(--current-theme-accent)}.terminal-cursor{display:inline-block;width:.55em;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--current-theme-accent);animation:terminal-blink 1.1s steps(1) infinite}@keyframes terminal-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.terminal-cursor{animation:none}}@media(max-width:768px){.footer-terminal-window{margin:0 15px 2.5rem;box-shadow:4px 4px 0 var(--current-theme-accent)}.terminal-body{font-size:.62rem;padding:10px 12px 12px}}.footer-content{max-width:900px;margin:0 auto;padding:0 5%;display:flex;justify-content:space-between;align-items:center;gap:2rem}.footer-links{display:flex;flex-direction:column;align-items:flex-end;gap:.7rem}.footer-row{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;column-gap:.55em;row-gap:.4em}.footer-row a+a:before{content:"·";color:var(--current-text-secondary);opacity:.6;margin-right:.55em;display:inline-block}.footer-brand h3{font-family:var(--font-mono);font-size:1.2rem;text-transform:uppercase;letter-spacing:.02em;margin:0 0 .5rem;color:var(--current-text)}.footer-tagline{font-family:var(--font-serif);color:var(--text-muted);font-size:.9rem;margin:0}.footer-nav a,.footer-social a{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-decoration:none;transition:color .2s ease;white-space:nowrap}.footer-nav a:hover,.footer-social a:hover{color:var(--current-theme-accent)}.footer-copyright{max-width:900px;margin:2rem auto 0;padding:1.5rem 5% 0;border-top:1px solid var(--grid-line)}.footer-copyright p{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin:0}@media(max-width:768px){.footer-content{flex-direction:column;align-items:center;text-align:center;gap:1.4rem}.footer-links{align-items:center}.footer-row{justify-content:center}}:root{--vh: 1vh}.touch-active{transform:scale(.98)!important;opacity:.8!important;transition:all .1s ease!important}.ripple-effect{position:absolute;border-radius:50%;transform:scale(0);animation:ripple .6s linear;background-color:#0000004d;pointer-events:none;z-index:10}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@media(hover:none){.card-style:hover,.btn:hover,.social-icon:hover,.btn-icon:hover{transform:none!important}}button:focus-visible,.btn:focus-visible,.btn-icon:focus-visible,a:focus-visible{outline:3px solid var(--current-theme-accent);outline-offset:2px;border-radius:4px;z-index:10}@media(prefers-contrast:high){.card-style,.content-section{border:2px solid var(--current-text)}.btn,.social-icon,.btn-icon{border:2px solid var(--current-text);background:var(--current-bg);color:var(--current-text)}.btn:hover,.social-icon:hover{background:var(--current-text);color:var(--current-bg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.card-style{animation:none!important}.particle,.floating-action-button{display:none!important}.footer-wave{animation:none!important}.footer-particles{display:none!important}}@media(max-width:768px){::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000080;border-radius:3px}}@supports (padding: max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right))}header{padding-top:max(20px,env(safe-area-inset-top))}.modern-footer{padding-bottom:max(2em,env(safe-area-inset-bottom))}#mobile-menu{padding-top:max(2em,env(safe-area-inset-top));padding-bottom:max(2em,env(safe-area-inset-bottom))}}@media(max-width:768px){.blog-content-body .table-wrapper{position:relative;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--current-theme-accent) transparent;overscroll-behavior-x:contain;transform:translateZ(0)}.blog-content-body .table-wrapper:after{content:"← Scroll →";position:absolute;bottom:5px;right:10px;font-size:.75em;color:var(--current-text-secondary);opacity:.7;pointer-events:none}.blog-content-body table{min-width:500px;width:auto}}.loading-skeleton{background:linear-gradient(90deg,var(--current-glass-bg) 25%,rgba(0,0,0,.1) 50%,var(--current-glass-bg) 75%);background-size:200% 100%;animation:loading-shimmer 1.5s infinite}@keyframes loading-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(max-width:768px){*{-webkit-touch-callout:none;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}button,.btn,.btn-icon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}}@media screen and (max-width:768px){input,textarea,select{font-size:16px!important;transform:translateZ(0)}}@media screen and (max-width:768px)and (max-height:500px){.hero-section{padding:1em}.card-style,.content-section{margin-bottom:1em;padding:15px}.modern-footer{padding:1.5em 0 1em}}@media(max-width:768px){.btn,.social-icon{font-weight:600}p,li{margin-bottom:1em}a{text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:2px}a:hover{text-decoration-color:var(--current-theme-accent)}}.publication-links,.publication-links-home{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:.8em}.publication-links .btn-icon,.publication-links-home .btn-icon,.publication-links .btn,.publication-links-home .btn{font-size:.9em;padding:.5em 1em;white-space:nowrap;position:relative;z-index:1}[id^=bibtex-entry-]{display:none;margin-top:1em;background-color:var(--current-glass-bg);padding:1em;border-radius:8px;border:1px solid var(--current-glass-border);position:relative;transition:all .3s ease;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}[id^=bibtex-entry-] pre{margin:0;padding:0;background:transparent;border:none;overflow-x:auto;-webkit-overflow-scrolling:touch}[id^=bibtex-entry-] code{background:transparent;border:none;padding:0;color:var(--current-text);font-family:Courier New,Courier,monospace;font-size:.85em;line-height:1.4;word-wrap:break-word;white-space:pre-wrap}.copy-bibtex-btn{position:absolute!important;top:10px!important;right:10px!important;background:#000c!important;color:#fff!important;border:none!important;padding:6px 12px!important;border-radius:4px!important;cursor:pointer!important;font-size:12px!important;transition:all .3s ease!important;display:flex!important;align-items:center!important;gap:5px!important;z-index:10!important;min-height:32px!important;min-width:60px!important}.copy-bibtex-btn:hover{background:#000!important;transform:scale(1.05)!important}.copy-bibtex-btn:active{transform:scale(.95)!important}@media(max-width:768px){.publication-links,.publication-links-home{flex-direction:column;align-items:stretch;gap:8px}.publication-links .btn-icon,.publication-links-home .btn-icon,.publication-links .btn,.publication-links-home .btn{width:100%;text-align:center;justify-content:center;padding:.7em 1em;font-size:.9em;min-height:44px;display:flex;align-items:center;gap:8px}[id^=bibtex-entry-]{margin:1em 0;padding:.8em;border-radius:6px}[id^=bibtex-entry-] code{font-size:.8em;line-height:1.3}.copy-bibtex-btn{position:relative!important;top:auto!important;right:auto!important;margin-top:10px!important;width:100%!important;justify-content:center!important}}@media(max-width:480px){.publication-links .btn-icon,.publication-links-home .btn-icon{font-size:.85em;padding:.6em .8em}[id^=bibtex-entry-]{padding:.6em}[id^=bibtex-entry-] code{font-size:.75em}}.publication-links a:focus,.publication-links-home a:focus{outline:2px solid var(--current-theme-accent);outline-offset:2px;z-index:10}.publication-links a,.publication-links-home a,.copy-bibtex-btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.publication-links a,.publication-links-home a{-webkit-tap-highlight-color:rgba(0,0,0,.3)}@media screen and (min-width:1025px){.social-links .btn,.btn{padding:.45em .9em;font-size:clamp(.75rem,1vw,.85rem);min-height:36px;transition:all .25s ease}.btn-icon{padding:.4em .8em;font-size:clamp(.7rem,.95vw,.8rem);min-height:34px}.social-links .btn:hover,.btn:hover{transform:none}.btn-icon:hover{transform:translateY(-1px)}@media screen and (min-width:1400px){.social-links .btn,.btn{font-size:clamp(.8rem,1vw,.9rem);padding:.5em 1em}.btn-icon{font-size:clamp(.75rem,.95vw,.85rem);padding:.45em .85em}}}@media screen and (min-width:1400px){main{max-width:1000px}nav{max-width:1000px}.footer-content,.footer-terminal-window{max-width:1000px}}.papers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.paper-card{background:var(--current-glass-bg);border:1px solid var(--current-glass-border);border-radius:var(--border-radius-main);padding:2rem;transition:all var(--transition-speed) ease;-webkit-backdrop-filter:blur(var(--backdrop-blur-amount));backdrop-filter:blur(var(--backdrop-blur-amount));box-shadow:var(--current-box-shadow);display:flex;flex-direction:column;gap:1rem}.paper-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px 0 var(--current-glass-border);border-color:var(--current-theme-accent)}.paper-icon{width:60px;height:60px;border-radius:12px;background:linear-gradient(135deg,var(--current-theme-accent),var(--current-theme-accent-hover));display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.paper-icon i{font-size:28px;color:#fff}.paper-card-title{font-size:1.3rem;font-weight:600;color:var(--current-text);margin:0;line-height:1.3}.paper-card-subtitle{font-size:1rem;color:var(--current-text-secondary);margin:0;font-weight:400;line-height:1.4}.paper-card-authors{font-size:.9rem;color:var(--current-text-secondary);margin:0;line-height:1.5}.paper-card-meta{font-size:.9rem;color:var(--current-theme-accent);font-weight:500;margin:0}.paper-card-description{font-size:.95rem;color:var(--current-text-secondary);line-height:1.6;margin:0;flex-grow:1}.paper-card-actions{display:flex;gap:.75rem;margin-top:.5rem;flex-wrap:wrap}.btn-paper-primary{flex:1;min-width:140px;background:var(--current-theme-accent);color:#fff;padding:.75rem 1.25rem;border-radius:var(--border-radius-small);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all var(--transition-speed) ease;border:2px solid transparent;font-size:.95rem;white-space:nowrap;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.btn-paper-primary:hover{background:var(--current-theme-accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.btn-paper-primary:active{transform:translateY(0);box-shadow:0 2px 6px #0003}.btn-paper-secondary{padding:.75rem 1.25rem;border-radius:var(--border-radius-small);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all var(--transition-speed) ease;background:transparent;border:2px solid var(--current-theme-accent);color:var(--current-theme-accent);cursor:pointer;font-family:var(--font-primary);font-size:.95rem;white-space:nowrap;-webkit-tap-highlight-color:rgba(0,0,0,.1)}.btn-paper-secondary:hover{background:var(--current-theme-accent);color:#fff;transform:translateY(-2px)}.btn-paper-secondary:active{transform:translateY(0);background:var(--current-theme-accent-hover);color:#fff}@media screen and (max-width:768px){.papers-grid{grid-template-columns:1fr;gap:1.25rem}.paper-card{padding:1.5rem}.paper-card-actions{flex-direction:column;gap:.5rem}.btn-paper-primary,.btn-paper-secondary{width:100%;padding:.65rem .9rem;font-size:.85rem;min-height:40px;justify-content:center}.btn-paper-primary i,.btn-paper-secondary i{font-size:.9rem}.paper-card-title{font-size:1.1rem}.paper-card-subtitle{font-size:.9rem}.paper-card-authors,.paper-card-meta{font-size:.8rem}.paper-card-description{font-size:.85rem}}@media screen and (max-width:480px){.paper-card{padding:1.2rem}.paper-card-actions{gap:.5rem}.btn-paper-primary,.btn-paper-secondary{padding:.6rem .85rem;font-size:.8rem;min-height:38px}.btn-paper-primary i,.btn-paper-secondary i{font-size:.85rem}.paper-card-title{font-size:1.05rem;line-height:1.3}.paper-card-subtitle{font-size:.85rem}.paper-icon{width:48px;height:48px}.paper-icon i{font-size:22px}}.spotify-widget{overflow:hidden}.spotify-widget-inner{display:grid;grid-template-columns:120px 1fr;gap:1.5rem;align-items:center}.spotify-album-art-container{position:relative;width:120px;height:120px;flex-shrink:0}.spotify-album-art{width:100%;height:100%;object-fit:cover;border-radius:var(--border-radius-small);border:1px solid var(--current-glass-border);background:var(--grid-line)}.spotify-preview-btn{gap:.3rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.spotify-preview-btn.playing{background:#1db954;color:#fff;border-color:#1db954}.spotify-embed-container{overflow:hidden;max-height:0;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease,margin-top .3s ease;margin-top:0}.spotify-embed-container.open{max-height:220px;opacity:1;margin-top:1rem}.spotify-embed-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:#1db954}.spotify-embed-header i.fa-headphones{margin-right:.4rem}.spotify-embed-close{background:none;border:1px solid var(--current-glass-border);color:var(--current-text-secondary);width:26px;height:26px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:background .2s ease,color .2s ease}.spotify-embed-close:hover{background:var(--current-text);color:var(--current-bg)}.spotify-embed-wrapper{border-radius:12px;overflow:hidden}.spotify-track-info{min-width:0}.spotify-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.spotify-header>i.fab.fa-spotify{font-size:1.2rem;color:#1db954!important}.spotify-status-text{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--current-text-secondary)}.spotify-equalizer{display:inline-flex;align-items:flex-end;gap:2px;height:14px;margin-left:.25rem}.spotify-equalizer span{display:block;width:3px;background:#1db954;border-radius:1px;animation:spotify-eq-bar .8s ease-in-out infinite}.spotify-equalizer span:nth-child(1){height:8px;animation-delay:0s}.spotify-equalizer span:nth-child(2){height:14px;animation-delay:.2s}.spotify-equalizer span:nth-child(3){height:6px;animation-delay:.4s}@keyframes spotify-eq-bar{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.spotify-track-name{font-family:var(--font-mono);font-size:1.1rem;font-weight:400;color:var(--current-text);text-decoration:none;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:.2rem;letter-spacing:-.02em}.spotify-track-name:hover{text-decoration:underline;text-decoration-color:var(--current-theme-accent)}.spotify-artist-name{font-family:var(--font-serif);font-size:.9rem;color:var(--current-text-secondary);margin:0 0 .15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-album-name{font-family:var(--font-serif);font-size:.8rem;color:var(--current-text-secondary);margin:0 0 .75rem;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.spotify-progress-container{margin-bottom:.75rem}.spotify-progress-bar{height:3px;background:var(--grid-line);border-radius:2px;overflow:hidden;margin-bottom:.3rem}.spotify-progress-fill{height:100%;background:var(--current-text);border-radius:2px;transition:width 1s linear;width:0%}.spotify-progress-times{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.65rem;color:var(--current-text-secondary);letter-spacing:.05em}.spotify-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.spotify-widget.not-playing .spotify-album-art{filter:grayscale(40%);opacity:.85}.spotify-widget.loading .spotify-track-info{opacity:.5}@media screen and (max-width:768px){.spotify-widget-inner{grid-template-columns:100px 1fr;gap:1rem}.spotify-album-art-container{width:80px;height:80px}.spotify-track-name{font-size:.95rem}.spotify-artist-name{font-size:.8rem}.spotify-album-name{font-size:.75rem}}@media screen and (max-width:480px){.spotify-widget-inner{grid-template-columns:1fr;text-align:center}.spotify-album-art-container{width:120px;height:120px;margin:0 auto .5rem}.spotify-header,.spotify-actions{justify-content:center}.spotify-track-name,.spotify-artist-name,.spotify-album-name{white-space:normal;text-overflow:unset}}@media(prefers-reduced-motion:reduce){.spotify-equalizer span{animation:none}.spotify-embed-container{transition:none}}.last-updated{display:inline-flex;align-items:center;gap:10px;margin:1.5rem 0 0;padding:.55rem 1.4rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--current-text-secondary);border:1px solid var(--grid-line);border-radius:100px;position:relative;overflow:hidden;transition:color .3s ease,border-color .3s ease}.last-updated:before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,0,0,.06),transparent);animation:stampShimmer 4s ease-in-out infinite}@keyframes stampShimmer{0%{left:-50%}50%{left:100%}to{left:-50%}}.last-updated .stamp-dot{width:6px;height:6px;border-radius:50%;background:var(--current-text-secondary);animation:stampPulse 2.5s ease-in-out infinite;flex-shrink:0}@keyframes stampPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.last-updated:hover{border-color:var(--current-text);color:var(--current-text)}.last-updated:hover .stamp-dot{background:var(--current-text)}@media screen and (max-width:768px){.last-updated{margin:1.2rem auto 0;font-size:.62rem;padding:.5rem 1rem;gap:7px}.hero-section .last-updated{display:flex;justify-content:center;max-width:fit-content;margin:1.2rem auto 0}}@media(prefers-reduced-motion:reduce){.last-updated:before{animation:none}.last-updated .stamp-dot{animation:none;opacity:.6}}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:2.5rem}.hero-kicker{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--current-theme-accent);margin-bottom:1rem}.hero-tagline{font-family:var(--font-serif);font-size:1.15rem;line-height:1.65;color:var(--current-text);max-width:56ch;margin:1rem 0 0}.hero-tagline strong{font-weight:600;box-shadow:inset 0 -2px 0 var(--current-theme-accent)}.hero-avatar{width:116px;height:116px;flex-shrink:0;padding:14px;background:var(--card-bg);border:1.5px solid var(--current-text);border-radius:var(--border-radius-main);box-shadow:6px 6px 0 var(--current-theme-accent)}.link-fs{margin-top:1.7rem;font-family:var(--font-mono);font-size:.8rem}.fs-term-wrap{display:flex;align-items:flex-start;gap:2.2rem}.fs-mode-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;width:250px;margin-bottom:1rem;border:1.5px solid var(--current-text);border-radius:999px;background:var(--card-bg);overflow:hidden}.fs-mode-thumb{position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 4px);border-radius:999px;background:var(--current-theme-accent);transition:transform .32s cubic-bezier(.65,0,.35,1.4)}.fs-mode-toggle.mode-term .fs-mode-thumb{transform:translate(calc(100% + 4px))}.fs-mode-toggle .fs-mode-btn{position:relative;z-index:1;padding:.5em 0;font-family:var(--font-mono);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--current-text-secondary);background:none;border:none;cursor:pointer;transition:color .25s ease;min-height:0;min-width:0}.fs-mode-toggle .fs-mode-btn[aria-pressed=true]{color:var(--bg-primary)}.fs-circuit{animation:fs-flash .3s ease}.circuit-board{position:relative;display:flex;align-items:center;max-width:640px;margin-top:.9rem;padding:.4rem 0}.circuit-traces{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.circuit-traces .trace{fill:none;stroke:color-mix(in srgb,var(--current-text) 30%,transparent);stroke-width:1.5;transition:stroke .2s ease,stroke-width .2s ease}.circuit-traces .trace.hot{stroke:var(--current-theme-accent);stroke-width:2.25}.circuit-traces .trace-pin{fill:var(--current-text)}.circuit-traces .trace-pulse{fill:var(--current-theme-accent);opacity:.45}.circuit-traces .trace-pulse.hot{opacity:1}.circuit-chip{position:relative;z-index:1;width:96px;height:96px;flex-shrink:0;border:2px solid var(--current-text);border-radius:var(--border-radius-small);background:var(--card-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.circuit-chip:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px dashed var(--grid-line);border-radius:2px;pointer-events:none}.chip-pins{position:absolute;pointer-events:none}.chip-pins-left{left:-8px;top:16px;bottom:16px;width:8px;background:repeating-linear-gradient(to bottom,var(--current-text) 0 5px,transparent 5px 14px)}.chip-pins-top{top:-8px;left:16px;right:16px;height:8px;background:repeating-linear-gradient(to right,var(--current-text) 0 5px,transparent 5px 14px)}.chip-pins-bottom{bottom:-8px;left:16px;right:16px;height:8px;background:repeating-linear-gradient(to right,var(--current-text) 0 5px,transparent 5px 14px)}.chip-dot{position:absolute;top:9px;left:9px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--current-text-secondary)}.chip-led{position:absolute;bottom:9px;right:9px;width:6px;height:6px;background:var(--current-theme-accent);animation:chip-led-blink 2.2s ease-in-out infinite}@keyframes chip-led-blink{0%,to{opacity:1}50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.chip-led{animation:none}}.chip-rev{font-family:var(--font-mono);font-size:.42rem;letter-spacing:.1em;text-transform:uppercase;color:var(--current-text-secondary);opacity:.8}.chip-name{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;letter-spacing:.04em;color:var(--current-text);line-height:1}.chip-sub{font-family:var(--font-mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.16em;color:var(--current-text-secondary)}.circuit-ports{position:relative;z-index:1;margin-left:auto;width:min(60%,350px);display:flex;flex-direction:column;gap:5px}.circuit-port{display:flex;align-items:baseline;gap:10px;padding:4px 8px;background:var(--current-bg);text-decoration:none;transition:color .15s ease}.port-pad{width:9px;height:9px;flex-shrink:0;align-self:center;border:1.5px solid var(--current-text);background:var(--card-bg);transition:background .15s ease,border-color .15s ease}.port-name{font-family:var(--font-mono);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--current-text);flex-shrink:0;transition:color .15s ease}.port-dest{font-family:var(--font-mono);font-size:.6rem;color:var(--current-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.circuit-port:hover .port-name,.circuit-port.is-hot .port-name{color:var(--current-theme-accent)}.circuit-port:hover .port-pad,.circuit-port.is-hot .port-pad{background:var(--current-theme-accent);border-color:var(--current-theme-accent)}.circuit-status{margin:.7rem 0 0;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.05em;color:var(--current-text-secondary);max-width:640px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:768px){.circuit-chip{width:72px;height:72px}.chip-name{font-size:1.05rem}.chip-pins-left{top:10px;bottom:10px}.chip-pins-top,.chip-pins-bottom{left:10px;right:10px}.chip-rev{display:none}.circuit-ports{width:62%;gap:0}.circuit-port{padding:2px 8px}.port-dest{display:none}.circuit-status{white-space:normal}}.fs-terminal{max-width:560px;min-width:0;flex:0 1 auto}.fs-hidden{opacity:0;transform:translateY(4px)}.fs-row,.fs-status,.fs-preview{transition:opacity .25s ease,transform .25s ease}.link-fs-cmd{margin:0 0 .45rem;font-size:.8rem;color:var(--current-text)}.fs-row{display:flex;align-items:baseline;gap:1em;padding:.16em .4em;color:var(--current-text);text-decoration:none;transition:color .15s ease,background .15s ease,opacity .25s ease,transform .25s ease}.fs-row:before{content:"❯";width:1.1ch;flex-shrink:0;color:var(--current-theme-accent);opacity:0;transition:opacity .12s ease}.fs-mode{color:var(--current-text-secondary);opacity:.65;flex-shrink:0;width:4ch}.fs-name{font-weight:600;letter-spacing:.04em;min-width:9ch;flex-shrink:0}.fs-arrow{color:var(--current-theme-accent);flex-shrink:0;transition:transform .18s ease}.fs-target{color:var(--current-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.fs-row:hover,.fs-row.is-selected{background:color-mix(in srgb,var(--current-theme-accent) 7%,transparent);color:var(--current-theme-accent)}.fs-row:hover:before,.fs-row.is-selected:before{opacity:1}.fs-row:hover .fs-target,.fs-row.is-selected .fs-target{color:var(--current-theme-accent)}.fs-row:hover .fs-arrow,.fs-row.is-selected .fs-arrow{transform:translate(4px)}.fs-status{margin:.5rem 0 0;padding-left:calc(1.1ch + 1.4em);font-size:.65rem;letter-spacing:.06em;color:var(--current-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-preview{flex:1 1 260px;max-width:320px;margin-top:1.55em;border:1.5px solid var(--current-text);border-radius:var(--border-radius-main);background:var(--card-bg);padding:.9em 1.1em;font-size:.72rem;line-height:1.8;visibility:hidden}.fs-preview.is-open{visibility:visible}.fs-preview-cmd{margin:0 0 .3em;color:var(--current-theme-accent)}.fs-preview-line{margin:0;display:flex;gap:1em;color:var(--current-text)}.fs-preview-key{flex-shrink:0;width:4.5ch;color:var(--current-text-secondary)}@keyframes fs-flash{0%{opacity:.3}to{opacity:1}}.fs-preview.fs-flash{animation:fs-flash .22s ease}@media screen and (max-width:1100px){.fs-preview{display:none}}.fs-file .fs-name{color:var(--current-theme-accent)}@media screen and (max-width:768px){.link-fs{font-size:.68rem;max-width:100%;text-align:left}.fs-name{min-width:7.5ch}}.btn.btn-primary{background-color:var(--current-theme-accent);background-image:linear-gradient(var(--current-theme-accent-hover),var(--current-theme-accent-hover));border-color:var(--current-theme-accent);color:var(--bg-primary)}.btn.btn-primary:before{border-top-color:var(--bg-primary);border-left-color:var(--bg-primary)}.btn.btn-primary:after{border-bottom-color:var(--bg-primary);border-right-color:var(--bg-primary)}.btn.btn-primary:hover{background-color:var(--current-theme-accent);border-color:var(--current-theme-accent-hover);color:var(--bg-primary)}.btn.btn-primary:hover:before,.btn.btn-primary:hover:after{border-color:var(--bg-primary)}@media screen and (max-width:768px){.hero-top{flex-direction:column-reverse;align-items:center;gap:1.4rem}.hero-avatar{width:92px;height:92px;padding:10px;box-shadow:4px 4px 0 var(--current-theme-accent)}.hero-tagline{font-size:1.02rem}}.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem}.pillar{border:1px solid var(--grid-line);border-top:3px solid var(--current-theme-accent);padding:1.1rem 1.2rem 1.2rem;background:var(--card-bg)}.pillar-num{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.16em;color:var(--current-theme-accent)}.pillar h3.pillar-title{font-size:.95rem!important;letter-spacing:.05em;margin:.5rem 0 .55rem}.pillar p{font-size:.9rem;line-height:1.55;color:var(--current-text-secondary);margin:0}@media screen and (max-width:768px){.pillars-grid{grid-template-columns:1fr;gap:1rem}}.pub-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:.5rem}.venue-badge{display:inline-block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;padding:.28em .7em;border:1px solid var(--current-theme-accent);color:var(--current-theme-accent);white-space:nowrap}.venue-badge.muted{border-color:var(--current-text-secondary);color:var(--current-text-secondary)}.pub-date{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--current-text-secondary)}.pub-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin-top:.6rem}.pub-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--current-link-color);text-decoration:none;cursor:pointer;white-space:nowrap}.pub-link i.fas,.pub-link i.fab{color:currentColor!important;font-size:.78rem}.pub-link:hover{text-decoration:underline;text-underline-offset:3px}.year-heading{display:flex;align-items:center;gap:1rem;font-family:var(--font-mono);font-size:1rem!important;letter-spacing:.16em;color:var(--current-text-secondary);margin:2.4rem 0 1.4rem}.year-heading:after{content:"";flex:1;height:1px;background:var(--grid-line)}#publications-list ul>li.publication-item:first-of-type .publication-title,.publication-item .publication-title{margin-top:0}.news-list li.news-extra[hidden]{display:none}.news-toggle-wrap{margin-top:1.4rem}a.contact-detail-item{text-decoration:none;color:inherit;display:grid}a.contact-detail-item:hover .value{color:var(--current-link-color)}.contact-detail-item .value{overflow-wrap:anywhere}.contact-detail-item .value a{word-break:normal;overflow-wrap:anywhere}.footer-copyright p .footer-updated{color:var(--text-muted);opacity:.85}.spotify-widget[hidden]{display:none}.nav-controls{display:flex;align-items:center;gap:12px}.theme-toggle{position:relative;width:60px;height:30px;min-width:60px;min-height:30px;flex-shrink:0;border:1.5px solid var(--current-text);border-radius:999px;background:var(--card-bg);cursor:pointer;padding:0;overflow:hidden;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.theme-toggle:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--current-theme-accent) 25%,transparent)}.theme-toggle .toggle-track-icon{position:absolute;top:50%;transform:translateY(-50%);line-height:1;opacity:.45;pointer-events:none}.theme-toggle .toggle-track-icon.sun{left:9px}.theme-toggle .toggle-track-icon.moon{right:9px}.theme-toggle .toggle-track-icon i{color:var(--current-text)!important;font-size:.66rem}.theme-toggle .toggle-thumb{position:absolute;top:2px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--current-theme-accent);box-shadow:0 0 10px color-mix(in srgb,var(--current-theme-accent) 75%,transparent);display:flex;align-items:center;justify-content:center;transition:transform .4s cubic-bezier(.68,-.25,.32,1.25),background .3s ease,box-shadow .3s ease}.theme-toggle .toggle-thumb i{position:absolute;color:var(--bg-primary)!important;font-size:.62rem;transition:opacity .25s ease,transform .4s ease}.theme-toggle .toggle-thumb .thumb-moon{opacity:0;transform:rotate(-120deg) scale(.4)}:root[data-theme=dark] .theme-toggle .toggle-thumb{transform:translate(29px);box-shadow:0 0 14px color-mix(in srgb,var(--current-theme-accent) 90%,transparent)}:root[data-theme=dark] .theme-toggle .toggle-thumb .thumb-sun{opacity:0;transform:rotate(120deg) scale(.4)}:root[data-theme=dark] .theme-toggle .toggle-thumb .thumb-moon{opacity:1;transform:rotate(0) scale(1)}@media(prefers-reduced-motion:reduce){.theme-toggle .toggle-thumb,.theme-toggle .toggle-thumb i{transition:none}}.publication-item-home{margin-bottom:2.2rem}.publication-item-home:last-of-type{margin-bottom:0}.pub-meta-row+.publication-title-home,.pub-meta-row+.publication-title{margin-top:0;margin-bottom:.45em}.publication-item-home .publication-authors-home{margin-bottom:.4em}.fs-preview-hint{margin:.55em 0 0;padding-top:.5em;border-top:1px solid var(--grid-line);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--current-text-secondary)}.fs-live{display:flex;align-items:baseline;margin:.55rem 0 0}.fs-input{font:inherit;font-family:var(--font-mono);color:var(--current-text);background:none;border:none;outline:none;padding:0;margin-left:.55em;width:11ch;min-width:1ch;caret-color:transparent}.fs-input::placeholder{color:var(--current-text-secondary);opacity:.5}.fs-ghost{color:var(--current-text-secondary);opacity:.5;white-space:pre}.fs-output{margin-top:.35rem}.fs-out-line{padding-left:calc(1.1ch + 1.4em);font-size:.72rem;line-height:1.8;color:var(--current-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-input:focus,.fs-input:focus-visible{outline:none;border-radius:0}.fs-live .terminal-path{margin-right:.55em}.fs-circuit[hidden],.fs-term-wrap[hidden]{display:none}.up-band{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.4rem}.up-channel{display:flex;align-items:center;gap:9px;padding:9px 13px;border:1.5px solid var(--current-text);background:var(--card-bg);text-decoration:none;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}.up-channel:hover,.up-channel.is-tuned{border-color:var(--current-theme-accent)}.up-channel:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--current-theme-accent)}.up-channel:active{transform:none;box-shadow:none}.up-code{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.08em;color:var(--current-text)}.up-channel:hover .up-code,.up-channel.is-tuned .up-code{color:var(--current-theme-accent)}.up-freq{font-family:var(--font-mono);font-size:.55rem;color:var(--current-text-secondary);letter-spacing:.06em}.up-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.up-bars i{display:block;width:3px;background:var(--current-text-secondary);opacity:.5}.up-bars i:nth-child(1){height:4px}.up-bars i:nth-child(2){height:7px}.up-bars i:nth-child(3){height:10px}.up-bars i:nth-child(4){height:13px}.up-channel:hover .up-bars i,.up-channel.is-tuned .up-bars i{background:var(--current-theme-accent);opacity:1;animation:up-bar .9s ease-in-out infinite}.up-channel:hover .up-bars i:nth-child(2),.up-channel.is-tuned .up-bars i:nth-child(2){animation-delay:.15s}.up-channel:hover .up-bars i:nth-child(3),.up-channel.is-tuned .up-bars i:nth-child(3){animation-delay:.3s}.up-channel:hover .up-bars i:nth-child(4),.up-channel.is-tuned .up-bars i:nth-child(4){animation-delay:.45s}@keyframes up-bar{0%,to{transform:scaleY(1)}50%{transform:scaleY(.45)}}.up-band-status{margin:.7rem 0 0;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.05em;color:var(--current-text-secondary)}.up-ground{display:flex;align-items:center;gap:9px;margin:1.1rem 0 1.8rem;font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--current-text-secondary)}.up-beacon{width:7px;height:7px;border-radius:50%;background:var(--current-theme-accent);animation:chip-led-blink 2.2s ease-in-out infinite;flex-shrink:0}.uplink-console{border:1.5px solid var(--current-text);border-radius:var(--border-radius-main);overflow:hidden;background:var(--card-bg)}.up-titlebar{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--grid-line);background:var(--current-glass-bg)}.terminal-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--current-text);background:transparent;flex-shrink:0}.terminal-dot.dot-accent{background:var(--current-theme-accent);border-color:var(--current-theme-accent)}.up-title{margin-left:8px;font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--current-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-sig{margin-left:auto;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--current-theme-accent);flex-shrink:0}.up-body{padding:1.1rem 1.3rem 1.2rem}.up-field{display:flex;align-items:baseline;gap:1em;padding:.45em 0;border-bottom:1px solid var(--grid-line)}.up-field-area{align-items:flex-start;border-bottom:none}.up-key{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--current-text-secondary);width:9ch;flex-shrink:0;white-space:nowrap}.up-field input,.up-field textarea{flex:1;min-width:0;font-family:var(--font-mono);font-size:.78rem;color:var(--current-text);background:none;border:none;outline:none;padding:0;resize:vertical}.up-field input::placeholder,.up-field textarea::placeholder{color:var(--current-text-secondary);opacity:.5}.up-field input:focus,.up-field textarea:focus{outline:none}.up-field:focus-within .up-key{color:var(--current-theme-accent)}.up-field-area textarea{margin-top:.2em;border:1px dashed var(--grid-line);padding:.6em .7em;border-radius:var(--border-radius-small)}.up-field-area textarea:focus{border-color:var(--current-theme-accent);outline:none}.up-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.9rem;flex-wrap:wrap}.up-meta{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;color:var(--current-text-secondary)}.up-status{margin:.7rem 0 0;min-height:1.2em;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.05em;color:var(--current-theme-accent)}@media(prefers-reduced-motion:reduce){.up-bars i,.up-beacon{animation:none!important}}@media screen and (max-width:480px){.up-channel{flex:1 1 calc(50% - 10px);justify-content:center}.up-key{width:8ch}}@font-face{font-family:"CMU Serif";src:url(/assets/fonts/cmu-serif-500-roman.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"CMU Serif";src:url(/assets/fonts/cmu-serif-500-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"CMU Serif";src:url(/assets/fonts/cmu-serif-700-roman.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"CMU Serif";src:url(/assets/fonts/cmu-serif-700-italic.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}body[data-page=cv] main{max-width:1040px;padding-left:0;padding-right:0;overflow:visible}.cv-page{--cv-paper: #ffffff;--cv-ink: #111111;--cv-rule: rgba(0, 0, 0, .85)}:root[data-theme=dark] .cv-page{--cv-paper: #16181d;--cv-ink: #e9e9ea;--cv-rule: rgba(255, 255, 255, .75)}.cv-intro{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;margin:0 0 1.1rem;font-family:var(--font-mono)}.cv-intro-tag{font-size:.78rem;color:var(--text-muted);letter-spacing:.01em}.cv-tb-prompt{color:var(--accent-blue);margin-right:.25rem;font-weight:700}.cv-find{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border:1.5px solid var(--nav-border, rgba(0, 0, 0, .4));background:var(--bg-primary, #fff)}.cv-find i{color:var(--text-muted);font-size:.78rem}.cv-find input{border:none;outline:none;background:transparent;font-family:var(--font-mono);font-size:.78rem;color:var(--current-text);width:13ch}.cv-find input::placeholder{color:var(--text-muted)}.cv-find-count{font-size:.72rem;color:var(--accent-blue);min-width:3ch}.cv-intro-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.cv-act-btn{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.74rem;font-weight:700;text-decoration:none;padding:.34rem .7rem;border:1.5px solid var(--nav-border, rgba(0, 0, 0, .55));color:var(--current-text);background:var(--bg-primary, #fff);cursor:pointer;white-space:nowrap;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease}.cv-act-btn:hover{transform:translate(-1px,-1px);box-shadow:2px 2px 0 0 var(--current-text)}.cv-act-primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.cv-act-primary:hover{box-shadow:2px 2px 0 0 var(--current-text)}.cv-stage{display:flex;justify-content:center}.cv-scale-wrap{transform-origin:top left}.cv-doc{width:8.5in;box-sizing:border-box;padding:.42in .5in .5in;background:var(--cv-paper);color:var(--cv-ink);font-family:"CMU Serif",Latin Modern Roman,Georgia,serif;font-size:10.4pt;line-height:1.12;text-align:left;transform-origin:top left;box-shadow:0 3px 24px #00000029;border:1px solid var(--glass-border, rgba(0, 0, 0, .12));transition:background .2s ease,color .2s ease}.cv-doc *{box-sizing:border-box}.cv-doc-head{text-align:center;margin-bottom:5pt}.cv-name{font-family:"CMU Serif",serif;font-size:23pt;font-weight:400;line-height:1.04;margin:0 0 2pt;letter-spacing:.2pt;text-transform:none;text-align:center;color:var(--cv-ink)}.cv-loc-line{margin:0 0 1.5pt;font-size:9.6pt}.cv-contact{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1.5pt 9pt;margin:1pt 0;font-size:9.6pt}.cv-contact-sep{display:none}.cv-contact-item{display:inline-flex;align-items:center;gap:3pt;color:var(--cv-ink);text-decoration:none}.cv-contact-item span{text-decoration:underline;text-underline-offset:1.5pt}.cv-contact-item i{font-size:8.8pt}.cv-h2{font-family:"CMU Serif",serif;font-size:13pt;font-weight:700;margin:6pt 0 2pt;padding-bottom:1.5pt;border-bottom:.8pt solid var(--cv-rule);letter-spacing:.1pt;line-height:1.1;text-transform:none;color:var(--cv-ink)}.cv-h2:after{display:none}.cv-sec:first-of-type .cv-h2{margin-top:2pt}.cv-entry{margin:4pt 0 0}.cv-entry-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.2em}.cv-org{font-weight:700}.cv-date{font-weight:700;white-space:nowrap;text-align:right}.cv-entry-sub{margin-top:.5pt}.cv-role{font-style:italic}.cv-loc{font-style:italic;white-space:nowrap;text-align:right}.cv-bullets{margin:1.5pt 0 0;padding-left:1.6em;list-style:disc}.cv-bullets li{margin:1pt 0;padding-left:.15em}.cv-pub{position:relative;padding-left:2.1em;margin:4pt 0 0}.cv-pub-n{position:absolute;left:0;top:0}.cv-pub-head{line-height:1.2}.cv-pub-title{font-weight:700}.cv-pub-venue{font-style:italic;margin-top:.5pt}.cv-pub .cv-bullets{margin-top:1pt;padding-left:1.5em}.cv-pub-links a{color:var(--cv-ink);text-decoration:underline;text-underline-offset:1.5pt}.cv-proj-title strong{font-weight:700}.cv-proj-bar{font-weight:400;margin:0 1pt}.cv-skills{list-style:none;margin:2pt 0 0;padding-left:.05in}.cv-skills li{margin:1pt 0}.cv-courses{column-count:4;column-gap:.5em;list-style:none;margin:2.5pt 0 0;padding-left:.05in}.cv-courses li{break-inside:avoid;padding-left:1em;text-indent:-1em;margin:1pt 0}.cv-courses li:before{content:"•  "}.cv-achievements{margin-top:2.5pt}.cv-doc a{color:var(--cv-ink)}.cv-doc a:hover,.cv-doc a:hover span{color:var(--accent-blue)}.cv-doc:not(.is-filtering) .cv-pub,.cv-entry{border-radius:2px;transition:background .15s ease}.cv-pub:hover,.cv-entry:hover{background:#4169e10f}.cv-pub.cv-hide{display:none}:root[data-theme=dark] .cv-doc{box-shadow:0 2px 22px #0009;border-color:#2a2a2a}@media screen and (max-width:720px){.cv-intro{justify-content:center;gap:.5rem}.cv-intro-tag{width:100%;text-align:center;font-size:.72rem}.cv-intro-actions{justify-content:center}}@media print{@page{size:Letter;margin:0}body[data-page=cv]{background:#fff!important}body[data-page=cv] header,body[data-page=cv] footer,body[data-page=cv] .cv-intro{display:none!important}body[data-page=cv] main{max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}body[data-page=cv] .cv-stage{display:block!important}body[data-page=cv] .cv-scale-wrap{width:auto!important;height:auto!important;transform:none!important}body[data-page=cv] .cv-doc{width:8.5in!important;transform:none!important;box-shadow:none!important;border:none!important;margin:0!important;padding:.42in .5in .5in!important;background:#fff!important;color:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body[data-page=cv] .cv-doc *,body[data-page=cv] .cv-doc a,body[data-page=cv] .cv-name,body[data-page=cv] .cv-h2{color:#000!important;background:transparent!important}body[data-page=cv] .cv-h2{border-bottom-color:#000!important}body[data-page=cv] .cv-pub.cv-hide{display:block!important}body[data-page=cv] .cv-pub:hover,body[data-page=cv] .cv-entry:hover{background:transparent!important}body[data-page=cv] .cv-pub,body[data-page=cv] .cv-entry,body[data-page=cv] .cv-h2{break-inside:avoid}body[data-page=cv] .cv-h2{break-after:avoid}}.cmp-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;pointer-events:none;overflow:hidden}.cmp-dog{position:absolute;top:0;left:0;width:84px;height:84px;transform-origin:50% 92%;will-change:transform;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}.cmp-tilt{width:100%;height:100%;transform-origin:50% 90%;transition:transform .35s ease}.cmp-fx{width:100%;height:100%;transform-origin:50% 100%;animation:cmp-breathe 3.6s ease-in-out infinite}.cmp-dog-svg{width:100%;height:100%;overflow:visible;display:block}.cmp-shadow{position:absolute;left:50%;bottom:3px;width:56%;height:8px;transform:translate(-50%);background:radial-gradient(ellipse at center,#0000003d,#0000 70%);z-index:-1;transition:width .3s ease,opacity .3s ease}.cmp-dog.is-hopping .cmp-shadow,.cmp-dog.is-excited .cmp-shadow{width:46%;opacity:.5}@keyframes cmp-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-.5%) scale(.992,1.02)}}.cmp-dog{--hop: .5s}.cmp-dog.is-excited{--hop: .36s}.cmp-dog.is-hopping .cmp-fx{animation:cmp-hopmove var(--hop) cubic-bezier(.4,0,.5,1) infinite}.cmp-dog.is-happy:not(.is-hopping):not(.is-wagging) .cmp-fx{animation:cmp-hopmove .5s cubic-bezier(.4,0,.5,1) infinite}@keyframes cmp-hopmove{0%{transform:translateY(0) scale(1)}12%{transform:translateY(1%) scale(1.07,.88)}30%{transform:translateY(-18%) scale(.92,1.12)}48%{transform:translateY(-27%) scale(.96,1.06)}72%{transform:translateY(-4%) scale(1)}86%{transform:translateY(0) scale(1.1,.86)}to{transform:translateY(0) scale(1)}}.cmp-dog.is-looking .cmp-tilt{animation:cmp-look 2.4s ease-in-out infinite}@keyframes cmp-look{0%{transform:rotate(0)}18%{transform:rotate(calc(11deg * var(--look, 1)))}60%{transform:rotate(calc(9deg * var(--look, 1)))}82%{transform:rotate(calc(11deg * var(--look, 1)))}to{transform:rotate(0)}}.cmp-dog.is-sniffing .cmp-tilt{animation:cmp-sniff .85s ease-in-out infinite}@keyframes cmp-sniff{0%,to{transform:translateY(8%) rotate(-3deg) scaleY(.95)}50%{transform:translateY(11%) rotate(2deg) scaleY(.93)}}.cmp-dog.is-begging .cmp-tilt{animation:cmp-beg 1.6s ease-in-out infinite}@keyframes cmp-beg{0%,to{transform:translateY(-7%) scaleY(1.02)}50%{transform:translateY(-9%) rotate(-2deg) scaleY(1.04)}}.cmp-dog.is-wagging:not(.is-happy) .cmp-fx{animation:cmp-wiggle .34s ease-in-out infinite}@keyframes cmp-wiggle{0%,to{transform:rotate(-3deg) scaleX(1.01)}50%{transform:rotate(3deg) scaleX(1.01)}}.cmp-ear{transform-box:fill-box;transition:transform .3s ease}.cmp-ear-l{transform-origin:92% 8%}.cmp-ear-r{transform-origin:8% 8%}.cmp-dog.is-hopping .cmp-ear-l,.cmp-dog.is-happy .cmp-ear-l,.cmp-dog.is-barking .cmp-ear-l{animation:cmp-flap-l var(--hop, .5s) ease-in-out infinite}.cmp-dog.is-hopping .cmp-ear-r,.cmp-dog.is-happy .cmp-ear-r,.cmp-dog.is-barking .cmp-ear-r{animation:cmp-flap-r var(--hop, .5s) ease-in-out infinite}.cmp-dog.is-sleeping .cmp-ear-l{transform:rotate(7deg) translateY(3%)}.cmp-dog.is-sleeping .cmp-ear-r{transform:rotate(-7deg) translateY(3%)}@keyframes cmp-flap-l{0%,to{transform:rotate(0)}45%{transform:rotate(-19deg)}}@keyframes cmp-flap-r{0%,to{transform:rotate(0)}45%{transform:rotate(19deg)}}.cmp-tail{transform-box:fill-box;transform-origin:12% 92%;animation:cmp-wag 1.6s ease-in-out infinite}.cmp-dog.is-hopping .cmp-tail,.cmp-dog.is-wagging .cmp-tail,.cmp-dog.is-happy .cmp-tail,.cmp-dog.is-excited .cmp-tail,.cmp-dog.is-barking .cmp-tail{animation-duration:.3s}.cmp-dog.is-sleeping .cmp-tail{animation-duration:3s}@keyframes cmp-wag{0%,to{transform:rotate(-12deg)}50%{transform:rotate(16deg)}}.cmp-eyes{transform-box:fill-box;transform-origin:center}.cmp-eye-closed,.cmp-eye-happy,.cmp-dog.is-sleeping .cmp-eyes{opacity:0}.cmp-dog.is-sleeping .cmp-eye-closed{opacity:1}.cmp-dog.is-happy .cmp-eyes{opacity:0}.cmp-dog.is-happy .cmp-eye-happy{opacity:1}.cmp-tongue{transform-box:fill-box;transform-origin:50% 0}.cmp-dog.is-sleeping .cmp-tongue{opacity:0}.cmp-dog.is-hopping .cmp-tongue,.cmp-dog.is-wagging .cmp-tongue,.cmp-dog.is-excited .cmp-tongue,.cmp-dog.is-happy .cmp-tongue{animation:cmp-loll .4s ease-in-out infinite}@keyframes cmp-loll{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.35) translateY(.5px)}}.cmp-fx.cmp-spin{animation:cmp-spin 1s cubic-bezier(.5,0,.3,1)}@keyframes cmp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cmp-dog.is-scratching .cmp-tilt{transform:rotate(-7deg)}.cmp-dog.is-scratching .cmp-fx{animation:cmp-shake .14s linear infinite}@keyframes cmp-shake{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(.6px,-1.5px) rotate(1.8deg)}}.cmp-dog.is-eating .cmp-tilt{animation:cmp-chomp .26s ease-in-out infinite}@keyframes cmp-chomp{0%,to{transform:translateY(9%) scaleY(.96)}50%{transform:translateY(12%) scaleY(.9)}}.cmp-dog.is-barking .cmp-fx{animation:cmp-bark .3s ease-out infinite}@keyframes cmp-bark{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-9%) scale(.95,1.08)}55%{transform:translateY(-2%) scale(1.04,.96)}to{transform:translateY(0) scale(1)}}.cmp-zzz{position:absolute;top:-6px;right:6px;font-family:var(--font-mono);font-weight:700;color:var(--accent-blue);font-size:.72rem;line-height:1;opacity:0;z-index:2}.cmp-dog.is-sleeping .cmp-zzz{opacity:1;animation:cmp-zzz 3s ease-in-out infinite}.cmp-zzz span{font-size:.85em;opacity:.85}.cmp-zzz span+span{font-size:1.05em}@keyframes cmp-zzz{0%{transform:translateY(2px);opacity:0}30%{opacity:1}to{transform:translateY(-13px);opacity:0}}.cmp-bubble{position:absolute;bottom:70px;left:50%;transform:translate(-50%) scale(.7);transform-origin:bottom center;background:var(--current-text, #111);color:var(--current-bg, #fff);font-family:var(--font-mono);font-size:.68rem;font-weight:600;white-space:nowrap;padding:.28rem .55rem;border-radius:11px;opacity:0;pointer-events:none;z-index:3;transition:opacity .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1)}.cmp-bubble:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--current-text, #111)}.cmp-bubble.show{opacity:1;transform:translate(-50%) scale(1)}.cmp-heart{position:absolute;font-size:.95rem;color:#ff4d6d;pointer-events:none;transform:translate(-50%);animation:cmp-heart 1.1s ease-out forwards;z-index:2}@keyframes cmp-heart{0%{opacity:0;transform:translate(-50%) scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--drift, 0px)),-54px) scale(1.1)}}.cmp-ball,.cmp-treat{position:absolute;top:0;left:0;pointer-events:auto;opacity:0;will-change:transform;transition:opacity .2s ease}.cmp-ball{width:22px;height:22px;cursor:grab;touch-action:none}.cmp-treat{width:28px;height:28px;pointer-events:none}.cmp-ball.show,.cmp-treat.show{opacity:1}.cmp-ball.grabbing{cursor:grabbing}.cmp-ball svg,.cmp-treat svg{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.cmp-fab{position:fixed;left:1rem;bottom:1rem;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--nav-border, rgba(0, 0, 0, .55));background:var(--current-glass-bg, #fff);box-shadow:3px 3px 0 0 var(--accent-blue);font-size:1.1rem;line-height:1;cursor:pointer;pointer-events:auto;z-index:4;transition:transform .14s ease,box-shadow .14s ease}.cmp-fab:hover{transform:translate(-1px,-1px) rotate(-8deg);box-shadow:4px 4px 0 0 var(--accent-blue)}.cmp-fab.active{transform:rotate(8deg)}.cmp-fab.is-off{box-shadow:3px 3px 0 0 var(--text-muted)}.cmp-panel{position:fixed;left:1rem;bottom:3.9rem;width:min(238px,calc(100vw - 2rem));padding:.75rem .8rem;background:var(--current-glass-bg, #fff);border:1.5px solid var(--nav-border, rgba(0, 0, 0, .55));box-shadow:5px 5px 0 0 var(--accent-blue);font-family:var(--font-mono);pointer-events:auto;z-index:4;opacity:0;transform:translateY(8px) scale(.96);transform-origin:bottom left;visibility:hidden;transition:opacity .16s ease,transform .16s ease,visibility .16s}.cmp-panel.open{opacity:1;transform:translateY(0) scale(1);visibility:visible}.cmp-panel-head{display:flex;align-items:baseline;gap:.4rem;margin-bottom:.55rem}.cmp-name{font-weight:700;color:var(--current-text);font-size:.95rem}.cmp-mood{font-size:.95rem}.cmp-tagline{font-size:.62rem;color:var(--text-muted);margin-left:auto}.cmp-stats{display:flex;flex-direction:column;gap:.28rem;margin-bottom:.6rem}.cmp-stat{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.cmp-stat>span{width:1.1em;text-align:center}.cmp-bar{flex:1;height:7px;background:var(--glass-border, rgba(0, 0, 0, .12));border:1px solid var(--glass-border, rgba(0, 0, 0, .18));overflow:hidden}.cmp-bar i{display:block;height:100%;width:70%;background:var(--accent-blue);transition:width .4s ease}.cmp-care{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-bottom:.55rem}.cmp-care button{display:flex;flex-direction:column;align-items:center;gap:.12rem;font-family:var(--font-mono);font-size:.68rem;text-transform:lowercase;padding:.4rem 0;border:1.5px solid var(--nav-border, rgba(0, 0, 0, .4));background:var(--bg-primary, #fff);color:var(--current-text);cursor:pointer;transition:background .13s ease,color .13s ease,transform .1s ease}.cmp-care button span{font-size:1.05rem;line-height:1}.cmp-care button:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue);transform:translateY(-1px)}.cmp-tricks{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem;margin-bottom:.55rem}.cmp-tricks-label{font-size:.62rem;color:var(--text-muted);margin-right:.1rem}.cmp-tricks button{font-family:var(--font-mono);font-size:.66rem;text-transform:lowercase;padding:.22rem .5rem;border:1px solid var(--glass-border, rgba(0, 0, 0, .2));background:transparent;color:var(--current-text);cursor:pointer;transition:background .13s ease,color .13s ease,border-color .13s ease}.cmp-tricks button:hover{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.cmp-hide{width:100%;font-family:var(--font-mono);font-size:.66rem;text-transform:lowercase;letter-spacing:.03em;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:.15rem}.cmp-hide:hover{color:var(--accent-blue)}@media(max-width:560px){.cmp-fab{width:40px;height:40px;font-size:1rem;left:.75rem;bottom:.75rem}.cmp-panel{left:.75rem;bottom:3.3rem}.cmp-bubble{font-size:.62rem;bottom:54px}.cmp-zzz{font-size:.62rem}}@media(prefers-reduced-motion:reduce){.cmp-tail,.cmp-zzz,.cmp-fx,.cmp-ear,.cmp-tongue,.cmp-tilt,.cmp-fx.cmp-spin,.cmp-dog.is-scratching .cmp-fx{animation:none!important}.cmp-tilt{transition:none}}@media print{.cmp-layer{display:none!important}}
