.footer{background:var(--secondary-bg);border-top:1px solid var(--card-border);z-index:10;width:100%;margin-top:auto;padding:40px 0 1.5rem;position:relative}.footer-container{max-width:var(--content-width);padding:0 var(--space-6);margin:0 auto}.footer-content{grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem;display:grid}.footer-brand h2{font-family:var(--font-editorial);color:var(--text-primary);margin-bottom:.4rem;font-size:1.75rem;font-weight:400}.footer-brand .tagline{color:var(--text-primary);max-width:300px;margin-bottom:.35rem;font-size:.95rem;font-weight:500}.footer-socials{gap:.75rem;display:flex}.footer-socials a{border-radius:var(--radius-card);background:var(--card-bg);border:1px solid var(--card-border);width:36px;height:36px;color:var(--text-secondary);transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;justify-content:center;align-items:center;font-size:1rem;display:flex}.footer-socials a:hover{background:var(--accent-color);color:var(--on-accent);border-color:var(--accent-color)}.footer-links h3,.footer-contact h3{color:var(--text-primary);margin-bottom:1.25rem;font-size:1rem;font-weight:600}.footer-links ul{padding:0;list-style:none}.footer-links li{margin-bottom:.6rem}.footer-links a{color:var(--text-secondary);font-size:.9rem;text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--accent-color)}.footer-contact p{color:var(--text-secondary);align-items:center;gap:.6rem;margin-bottom:.6rem;font-size:.9rem;display:flex}.footer-contact i{color:var(--accent-color)}.footer-bottom{border-top:1px solid var(--card-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding-top:1.5rem;display:flex}.footer-bottom p{color:var(--text-secondary);margin:0;font-size:.85rem}@media (width<=768px){.footer-content{text-align:center;grid-template-columns:1fr;gap:2rem}.footer-brand .tagline{margin:0 auto 1.25rem}.footer-socials,.footer-contact p{justify-content:center}.footer-bottom{text-align:center;flex-direction:column}}.footer-role{font-family:var(--font-mono);letter-spacing:0;color:var(--text-secondary);margin-bottom:1.25rem;font-size:.75rem}.back-to-top{background:var(--primary-bg);width:45px;height:45px;box-shadow:var(--shadow-md);cursor:pointer;z-index:1000;border:1px solid var(--glass-border);color:var(--text-primary);transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:30px;right:30px}.back-to-top:hover{background:var(--accent-color);color:var(--on-accent);box-shadow:0 0 20px var(--accent-glow);border-color:var(--accent-color)}.back-to-top i{font-size:1.2rem}.back-to-top.dark-mode{background:#1e293bcc}.back-to-top.dark-mode:hover{background:var(--accent-color)}@font-face{font-family:Inter Fallback;src:local(Arial),local(Liberation Sans),local(Helvetica);ascent-override:90.49%;descent-override:22.56%;line-gap-override:0%;size-adjust:107.06%}:root{--font-body:"Inter", "Inter Fallback", sans-serif;--font-heading:"Outfit", sans-serif;--font-editorial:Georgia, "Times New Roman", serif;--text-base:1rem;--text-control:.95rem;--text-section:2.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:4px;--radius-control:6px;--radius-card:8px;--control-height:48px;--icon-control-size:44px;--content-width:1040px;--page-gutter:var(--space-6);--duration-fast:.16s;--color-success:#167453;--color-error:#b4233c;--primary-bg:#fff;--secondary-bg:#f4f6f4;--accent-color:#21664f;--accent-glow:#21664f17;--on-accent:#fff;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-primary:#242a27;--text-secondary:#5a665f;--card-bg:#fff;--card-border:#dce2dd;--glass-bg:#fff;--glass-border:#dce2dd;--shadow-sm:0 1px 2px 0 #0000000a;--shadow-md:0 2px 8px -2px #00000014;--shadow-lg:0 4px 16px -4px #0000001a;--input-bg:#f4f6f4;--nav-bg:#fffffff7}body.dark-mode{--color-success:#6dd6ad;--color-error:#fda4af;--primary-bg:#191c1a;--secondary-bg:#212622;--accent-color:#a4d6b7;--accent-glow:#a4d6b71a;--on-accent:#191c1a;--text-primary:#edf0ec;--text-secondary:#adb9b0;--card-bg:#212622;--card-border:#39423c;--glass-bg:#212622;--glass-border:#39423c;--input-bg:#292f2b;--shadow-sm:0 1px 2px 0 #0003;--shadow-md:0 2px 8px -2px #0000004d;--shadow-lg:0 4px 16px -4px #0006;--nav-bg:#191c1af7}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--primary-bg);color:var(--text-primary);letter-spacing:0;margin:0;line-height:1.7;transition:background-color .3s,color .3s;overflow-x:clip}:where(button,input,textarea,select){font:inherit;letter-spacing:inherit}code,pre,kbd,samp{font-family:var(--font-mono)}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--accent-color);outline-offset:4px}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:0;overflow-wrap:anywhere;line-height:1.2}h2{margin-bottom:var(--space-6);text-align:left;color:var(--text-primary);font-size:1.75rem;font-weight:700}p{color:var(--text-secondary);margin-bottom:var(--space-6);font-weight:400;font-size:var(--text-base);line-height:1.7}.glass{background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--shadow-sm)}:where(.btn-primary,.btn-secondary,.hero-btn,.learn-btn,.contact-submit,.view-all-btn){min-height:var(--control-height);max-width:100%;padding:var(--space-3) var(--space-6);border-radius:var(--radius-control);transition:background-color var(--duration-fast) ease, border-color var(--duration-fast) ease, color var(--duration-fast) ease, opacity var(--duration-fast) ease, filter var(--duration-fast) ease;justify-content:center;align-items:center;gap:var(--space-2);font-family:inherit;font-weight:600;font-size:var(--text-control);text-align:center;overflow-wrap:anywhere;cursor:pointer;border:1px solid #0000;line-height:1.5;text-decoration:none;display:inline-flex}:where(.contact-field input,.contact-field textarea,.blog-search-input,.project-search-input){width:100%;min-width:0;min-height:var(--control-height);border:1px solid var(--card-border);border-radius:var(--radius-control);background:var(--primary-bg);color:var(--text-primary);font-size:var(--text-base);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;line-height:1.5;display:block}:where(.contact-field input,.contact-field textarea,.blog-search-input,.project-search-input):focus{outline:2px solid var(--accent-color);outline-offset:2px;border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-glow)}.btn-primary{background:var(--accent-color);border:1px solid var(--accent-color);color:var(--on-accent)}.btn-secondary{color:var(--text-primary);border:1px solid var(--card-border);background:0 0}.btn-primary:hover{opacity:.9}.btn-secondary:hover{border-color:var(--accent-color);color:var(--accent-color)}.section-heading{text-align:left;margin-bottom:var(--space-10)}.section-index{font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;color:var(--accent-color);margin-bottom:var(--space-2);font-size:.78rem;font-weight:500;line-height:1.4}.section-heading h1,.section-heading h2{font-size:var(--text-section);margin-bottom:0}.container{max-width:var(--content-width);padding:0 var(--page-gutter);margin:0 auto}@media (width<=720px){:root{--text-section:2rem}}@keyframes materialize-in{0%{opacity:0}to{opacity:1}}.materialize-hidden{opacity:0}.materialize-visible{animation:.5s forwards materialize-in}.skip-nav{z-index:-1;width:1px;height:1px;text-decoration:none;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-nav:focus{background:var(--accent-color);width:auto;height:auto;color:var(--on-accent);border-radius:var(--radius-card);z-index:9999;outline-offset:2px;outline:3px solid;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.page-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.logo-loader-ring{transform-box:fill-box;transform-origin:50%;animation:1.1s linear infinite logo-spin}.logo-loader-mark{animation:1.6s ease-in-out infinite logo-pulse}@keyframes logo-spin{to{transform:rotate(360deg)}}@keyframes logo-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page-title{font-family:var(--font-editorial);margin-bottom:16px;font-size:3rem;font-weight:400;line-height:1.2}.page-kicker{color:var(--text-secondary);margin:0 0 12px;font-size:.8125rem}.text-link{min-height:44px;color:var(--accent-color);align-items:center;gap:12px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.text-link:hover{text-underline-offset:5px;text-decoration:underline}.text-link i{flex-shrink:0;font-size:.75rem}@media (width<=720px){.page-title{font-size:2.25rem}}.header{z-index:1000;background:var(--nav-bg);border-bottom:1px solid var(--card-border);width:100%;padding:18px 0;transition:padding .3s,background-color .3s;position:fixed;top:0;left:0}.header-content{justify-content:space-between;align-items:center;display:flex}.signature a{cursor:pointer;color:var(--text-primary);text-decoration:none;transition:opacity .3s}.signature span{color:var(--accent-color)}.nav-desktop{align-items:center;display:flex}.nav-links{gap:28px;list-style:none;display:flex}.nav-links a{color:var(--text-primary);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.nav-links a:after{content:"";background:var(--accent-color);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.nav-links a:hover{color:var(--accent-color)}.nav-links a:hover:after{width:100%}.header :is(.theme-toggle,.menu-button){width:var(--icon-control-size);height:var(--icon-control-size);border-radius:var(--radius-control);flex-shrink:0}.header-controls{align-items:center;gap:1.5rem;display:flex}.theme-toggle{color:var(--text-primary);cursor:pointer;background:0 0;border:none;font-size:1.2rem;transition:transform .3s,color .3s}.theme-toggle:hover{color:var(--accent-color);transform:rotate(15deg)}.menu-button{color:var(--text-primary);cursor:pointer;background:0 0;border:none;font-size:1.5rem;display:none}.mobile-menu{background:var(--nav-bg);border-top:1px solid var(--card-border);width:100%;position:absolute;top:100%;left:0;overflow:hidden}.mobile-nav-links{flex-direction:column;gap:1rem;padding:1rem 2rem;list-style:none;display:flex}.mobile-nav-links li a{color:var(--text-primary);padding:.5rem 0;font-size:1.1rem;font-weight:500;text-decoration:none;display:block}@media (width<=768px){.header{padding:12px 0}.nav-desktop{display:none}.menu-button{display:block}}.home-intro{padding:144px 0 48px}.intro-identity{align-items:center;gap:24px;margin-bottom:24px;display:flex}.intro-portrait{object-fit:cover;object-position:center 25%;border-radius:50%;flex:none;width:96px;height:96px}.intro-location{color:var(--text-secondary);margin:0 0 8px;font-size:.875rem}.home-intro h1{font-family:var(--font-editorial);margin:0;font-size:4rem;font-weight:400;line-height:1.08}.intro-bio{max-width:750px;color:var(--text-primary);margin-bottom:16px;font-size:1.125rem;line-height:1.8}.intro-links{flex-wrap:wrap;gap:0 28px;display:flex}.intro-links a{min-height:44px;color:var(--text-primary);align-items:center;gap:10px;font-size:.875rem;text-decoration:none;display:inline-flex}.intro-links a:first-child{color:var(--accent-color);font-weight:600}.intro-links a:hover{text-underline-offset:5px;text-decoration:underline}.intro-links i{font-size:.75rem}.intro-availability{color:var(--text-secondary);margin:18px 0 0;font-size:.8125rem}@media (width<=720px){.home-intro{padding:112px 0 32px}.intro-identity{gap:16px;margin-bottom:20px}.intro-portrait{width:64px;height:64px}.home-intro h1{font-size:2.5rem}.intro-location{max-width:230px;font-size:.75rem;line-height:1.5}.intro-bio{font-size:1rem;line-height:1.7}.intro-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;max-width:360px;display:grid}}@media (width<=380px){.intro-identity{align-items:flex-start}.intro-portrait{width:48px;height:48px}.home-intro h1{font-size:2rem}.intro-location{font-size:.6875rem}.intro-links{gap:0 18px}}.resume-section{padding:80px 0;position:relative}.resume-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2.5rem;display:flex}.resume-heading-row .section-heading{margin-bottom:0}.resume-download{flex-shrink:0}.resume-sheet{text-align:left;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-control);max-width:920px;color:var(--text-primary);margin:0 auto;padding:3rem 3.5rem;font-size:.95rem;line-height:1.6;box-shadow:0 1px 2px #0f172a0a,0 12px 32px -12px #0f172a2e}.sheet-header{text-align:center;margin-bottom:1.75rem}.sheet-name{letter-spacing:0;margin-bottom:.3rem;font-size:2rem;font-weight:700;line-height:1.15}.sheet-role{font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.6rem;font-size:.78rem;line-height:1.5}.sheet-links{flex-wrap:wrap;justify-content:center;gap:.25rem 0;margin:0;font-size:.88rem;line-height:1.5;display:flex}.sheet-links a{color:var(--accent-color);text-decoration:none}.sheet-links a:hover{text-decoration:underline}.sheet-links a+a:before{content:"|";color:var(--card-border);margin:0 .6rem}.sheet-section+.sheet-section{margin-top:1.5rem}.sheet-heading{font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;color:var(--accent-color);border-bottom:1px solid var(--card-border);margin-bottom:.85rem;padding-bottom:.35rem;font-size:.78rem;font-weight:600;line-height:1.4}.resume-sheet p{font-size:inherit;line-height:inherit;color:inherit;margin:0}.resume-sheet .sheet-summary{color:var(--text-secondary)}.sheet-entry+.sheet-entry{margin-top:1rem}.entry-header{grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;display:grid}.entry-title{font-weight:600}.entry-subtitle{color:var(--text-secondary);font-weight:400}.resume-sheet .entry-dates,.resume-sheet .entry-location{text-align:right;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:.8rem}.resume-sheet .entry-org{color:var(--text-secondary);font-style:italic}.resume-sheet .entry-detail{color:var(--text-secondary);margin-top:.25rem;font-size:.88rem}.entry-bullets{margin:.5rem 0 0;padding-left:1.15rem}.entry-bullets li{color:var(--text-secondary);margin-bottom:.35rem}.entry-bullets li::marker{color:var(--accent-color)}.entry-bullets strong,.sheet-publication strong{color:var(--text-primary);font-weight:600}.sheet-skills{margin:0}.sheet-skills div{grid-template-columns:170px minmax(0,1fr);gap:1rem;padding:.2rem 0;display:grid}.sheet-skills dt{font-weight:600}.sheet-skills dd{color:var(--text-secondary);margin:0}.resume-sheet .sheet-publication{color:var(--text-secondary)}@media (width<=768px){.resume-section{padding:60px 0}.resume-sheet{padding:1.75rem 1.25rem;font-size:.9rem}.sheet-name{font-size:1.6rem}.sheet-links{gap:.25rem 1rem}.sheet-links a+a:before{display:none}.entry-header{grid-template-columns:minmax(0,1fr)}.resume-sheet .entry-dates,.resume-sheet .entry-location{text-align:left}.entry-title{order:1}.entry-org{order:2}.entry-dates{order:3}.entry-location{order:4}.sheet-skills div{grid-template-columns:minmax(0,1fr);gap:0;padding:.35rem 0}}.project-row{border-top:1px solid var(--card-border);grid-template-columns:minmax(0,1fr) minmax(0,360px);align-items:center;gap:48px;padding:32px 0;display:grid}.project-row-copy{min-width:0}.project-row-tools{color:var(--text-secondary);margin:0 0 12px;font-size:.75rem}.project-row-title{font-family:var(--font-body);margin:0 0 12px;font-size:1.375rem;font-weight:600;line-height:1.4}.project-row-title a{color:inherit;text-decoration:none}.project-row-title a:hover{text-underline-offset:4px;text-decoration:underline}.project-row-description{margin:0 0 12px;font-size:.9375rem;line-height:1.8}.project-row-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.project-row-icon{width:44px;height:44px;color:var(--text-secondary);border-radius:4px;place-items:center;text-decoration:none;display:grid}.project-row-icon:hover{color:var(--accent-color);background:var(--accent-glow)}.project-row-image{border:1px solid var(--card-border);background:#fff;display:block}.project-row-image img{aspect-ratio:800/533;object-fit:contain;width:100%;height:auto;display:block}@media (width<=900px){.project-row{grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:28px}}@media (width<=720px){.project-row{grid-template-columns:minmax(0,1fr);gap:20px;padding:28px 0}.project-row-title{font-size:1.25rem}.project-row-image{max-width:520px}}.publications{padding:80px 0}.paper{border-radius:var(--radius-card);background:var(--card-bg);border:1px solid var(--card-border);padding:2.5rem}.paper-venue{font-family:var(--font-mono);letter-spacing:0;color:var(--accent-color);margin-bottom:.6rem;font-size:.75rem;line-height:1.5}.paper-venue em{font-style:normal}.paper-title{color:var(--text-primary);margin-bottom:.5rem;font-size:1.5rem;line-height:1.3}.paper-authors{color:var(--text-secondary);margin-bottom:2rem}.paper-body{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:2.5rem;display:grid}.paper-summary{color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.75}.paper-links{flex-wrap:wrap;gap:.6rem;margin:0;display:flex}.paper-links .btn-secondary{padding:.5rem 1rem;font-size:.88rem}.paper-table-wrap{overflow-x:auto}.paper-table{border-collapse:collapse;width:100%;font-size:.88rem}.paper-table th,.paper-table td{border-bottom:1px solid var(--card-border);text-align:left;white-space:nowrap;padding:.55rem .75rem}.paper-table thead th{color:var(--text-secondary);font-size:.75rem;font-weight:600}.paper-table tbody th{color:var(--text-primary);font-weight:500}.paper-table td{font-family:var(--font-mono);color:var(--text-secondary)}.paper-table .is-ours th,.paper-table .is-ours td{color:var(--accent-color);background:var(--accent-glow);font-weight:600}.paper-cite{border:1px solid var(--card-border);border-radius:var(--radius-card);margin-top:2rem;overflow:hidden}.paper-cite-bar{background:var(--secondary-bg);border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:.5rem .75rem .5rem 1rem;display:flex}.paper-cite-bar .mono-label{margin:0}.paper-copy{border:1px solid var(--card-border);border-radius:var(--radius-control);background:var(--card-bg);color:var(--text-primary);cursor:pointer;align-items:center;gap:.35rem;padding:.3rem .75rem;font-family:inherit;font-size:.8rem;display:inline-flex}.paper-copy:hover{border-color:var(--accent-color);color:var(--accent-color)}.paper-cite pre{font-family:var(--font-mono);color:var(--text-primary);margin:0;padding:1rem;font-size:.8rem;line-height:1.6;overflow-x:auto}@media (width<=900px){.paper{padding:1.5rem}.paper-body{grid-template-columns:minmax(0,1fr);gap:1.75rem}}@media (width<=600px){.paper-title{font-size:1.25rem}}.contact{padding:var(--space-16) 0 var(--space-20);scroll-margin-top:100px}.contact-layout{align-items:start;gap:var(--space-16);grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);display:grid}.contact-intro{padding-top:var(--space-2);min-width:0}.contact .section-heading{margin-bottom:var(--space-5)}.contact .section-heading h2{font-size:36px;line-height:1.2}.contact-subtitle{max-width:360px;margin:0 0 28px;font-size:15px;line-height:1.8}.contact-person{align-items:center;gap:14px;margin-bottom:30px;display:flex}.contact-person img{object-fit:cover;object-position:center 25%;border:1px solid var(--card-border);border-radius:50%;flex-shrink:0;width:52px;height:52px}.contact-person p{margin:0;line-height:1.5}.contact-person .contact-person-name{color:var(--text-primary);font-size:15px;font-weight:600}.contact-person .contact-person-role{margin-top:3px;font-size:12px}.contact-details{gap:var(--space-5);padding-top:var(--space-6);border-top:1px solid var(--card-border);display:grid}.contact-details dt{color:var(--text-secondary);margin-bottom:var(--space-1);align-items:center;gap:9px;font-size:12px;display:flex}.contact-details dt i{text-align:center;width:14px}.contact-details dd{color:var(--text-primary);overflow-wrap:anywhere;margin:0;font-size:14px}.contact-details a{color:inherit;text-decoration:none}.contact-details a i{color:var(--text-secondary);margin-left:9px;font-size:10px}.contact-details a:hover{text-underline-offset:4px;text-decoration:underline}.contact-profiles{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.contact-profiles a{border:1px solid var(--card-border);border-radius:var(--radius-control);width:42px;height:42px;color:var(--text-secondary);background:var(--primary-bg);place-items:center;text-decoration:none;transition:color .16s,border-color .16s,background .16s;display:grid;position:relative}.contact-profiles a:hover{color:var(--accent-color);border-color:var(--accent-color);background:var(--accent-glow)}.contact-tooltip{padding:3px var(--space-2);background:var(--text-primary);color:var(--primary-bg);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;z-index:1;font-size:11px;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.contact-profiles a:hover .contact-tooltip,.contact-profiles a:focus-visible .contact-tooltip{opacity:1}.contact-form{min-width:0;padding:30px 30px var(--space-2);border:1px solid var(--card-border);border-radius:var(--radius-card);background:var(--card-bg);box-shadow:var(--shadow-sm);position:relative}.contact-form-heading{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--card-border);display:flex}.contact-form-heading h3{margin:0;font-size:20px;font-weight:600}.contact-form-heading>i{color:var(--accent-color);font-size:18px}.contact-fields{border:0;min-width:0;margin:0;padding:0}.contact-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px;display:grid}.contact-field{min-width:0}.contact-field label{margin-bottom:var(--space-2);font-size:13px;font-weight:500;line-height:1.5;display:block}.contact-input-wrap{position:relative}.contact-input-wrap>i{text-align:center;width:16px;color:var(--text-secondary);pointer-events:none;font-size:14px;position:absolute;top:17px;left:14px}.contact-field input{height:var(--control-height);padding:11px var(--space-3) 11px var(--space-10)}.contact-field textarea{resize:vertical;min-height:190px;padding:14px}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--text-secondary);opacity:.8;font-size:14px}.contact-field [aria-invalid=true]{border-color:var(--color-error)}.contact-field .contact-field-error{color:var(--color-error);margin:6px 0 0;font-size:12px;line-height:1.5}.contact-label-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.contact-counter{color:var(--text-secondary);font-family:var(--font-mono);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:11px}.contact-form-actions{justify-content:flex-end;margin-top:22px;display:flex}.contact-submit{min-width:180px;padding:var(--space-3) var(--space-5);border:1px solid var(--accent-color);background:var(--accent-color);color:var(--on-accent);gap:18px}.contact-submit i{text-align:center;width:16px}.contact-submit:hover:not(:disabled){filter:brightness(1.08)}.contact-submit:disabled{opacity:.7;cursor:wait}.contact-field input:disabled,.contact-field textarea:disabled{opacity:.65;cursor:wait}.contact-feedback{min-height:52px}.contact-feedback-message{padding:var(--space-4) 0 var(--space-3);overflow-wrap:anywhere;align-items:flex-start;gap:10px;display:flex}.contact-feedback-message>i{margin-top:var(--space-1);flex-shrink:0}.contact-feedback-message.success{color:var(--color-success)}.contact-feedback-message.error{color:var(--color-error)}.contact-feedback-message p{color:inherit;margin:0;font-size:13px;line-height:1.6}.contact-feedback-message .contact-feedback-detail{color:var(--text-secondary);margin-top:3px}.contact .form-honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=968px){.contact-layout{gap:var(--space-8);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.contact-form{padding:var(--space-6) var(--space-6) var(--space-1)}.contact-field-row{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.contact{padding:var(--space-10) 0 56px}.contact-layout{gap:var(--space-8);grid-template-columns:minmax(0,1fr)}.contact-intro{padding:0}.contact .section-heading h2{font-size:30px}.contact-subtitle{max-width:480px;margin-bottom:22px}.contact-person{margin-bottom:22px}.contact-details{gap:var(--space-4);padding-top:var(--space-5)}.contact-profiles{margin-top:var(--space-5)}.contact-submit{width:100%}}@media (width<=380px){.contact-form{padding:var(--space-5) var(--space-4) var(--space-1)}}.home-page :is(#projects,#publications,#resume,#contact){scroll-margin-top:110px}.home-page :is(.home-work,.home-notes,.publications,.resume-section,.contact){padding:48px 0}.home-page :is(.home-work,.publications,.resume-section,.contact)>.container{border-top:1px solid var(--card-border);padding-top:36px}.home-page .home-work{padding-top:0}.home-kicker,.home-page .section-index{color:var(--text-secondary);font-family:var(--font-body);text-transform:none;margin:0 0 10px;font-size:.75rem;font-weight:500}.home-page .section-heading h2,.home-page .home-section-heading h2,.home-notes h2{font-family:var(--font-editorial);margin:0;font-size:2.25rem;font-weight:400;line-height:1.2}.home-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;padding-bottom:28px;display:flex}.home-text-link{min-height:44px;color:var(--accent-color);align-items:center;gap:12px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.home-text-link:hover{text-underline-offset:5px;text-decoration:underline}.home-text-link i{flex-shrink:0;font-size:.75rem}.home-notes{background:var(--secondary-bg)}.home-notes-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;display:grid}.home-notes h2{margin-bottom:16px}.home-notes-layout>div>p:not(.home-kicker){max-width:360px;margin-bottom:12px;font-size:.9375rem}.home-note-list{align-self:center;list-style:none}.home-note-list li{border-bottom:1px solid var(--card-border)}.home-note-list li:first-child{border-top:1px solid var(--card-border)}.home-note-list a{color:var(--text-primary);justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font-size:.9375rem;text-decoration:none;display:flex}.home-note-list a:hover{color:var(--accent-color)}.home-note-list i{flex-shrink:0;font-size:.75rem}.home-page .paper{background:0 0;border:0;border-radius:0;padding:0}.home-page .mono-label{color:var(--text-secondary);font-family:var(--font-body);margin:0 0 12px;font-size:.8125rem;font-weight:600}.home-page .resume-sheet{max-width:none;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.home-page .sheet-header{text-align:left;border-bottom:1px solid var(--card-border);padding-bottom:24px}.home-page .sheet-links{justify-content:flex-start}.home-page .sheet-name{font-size:1.5rem}.home-page .sheet-heading{text-transform:none;font-family:var(--font-body);font-size:.9375rem}.home-page .contact .section-heading h2{font-size:2.25rem}.home-page .contact-form{background:var(--primary-bg);box-shadow:none}.home-page .contact-form-heading h3{font-family:var(--font-body);font-size:1rem}@media (width<=900px){.home-notes-layout{gap:32px}}@media (width<=720px){.home-page :is(.home-work,.home-notes,.publications,.resume-section,.contact){padding:32px 0}.home-page .home-work{padding-top:0}.home-page :is(.home-work,.publications,.resume-section,.contact)>.container{padding-top:28px}.home-section-heading{align-items:start;gap:8px;padding-bottom:12px}.home-page .section-heading h2,.home-page .home-section-heading h2,.home-notes h2,.home-page .contact .section-heading h2{font-size:1.875rem}.home-notes-layout{grid-template-columns:minmax(0,1fr);gap:20px}}
