:root{--green:#1db86a;--amber:#e8a020;--red:#e05252;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}:root,:root[data-theme=dark]{--bg:#0c0e13;--bg-secondary:#101319;--card:#151822;--card-hover:#1b1f2b;--body-weight:500;--smoothing:auto;--nav-bg:#0c0e13bd;--nav-active-bg:#ffffff13;--nav-shadow:none;--cyan:#00bcd4;--cyan-dim:#00bcd414;--cyan-border:#00bcd433;--cyan-on-tint:#00bcd4;--amber-text:#e8a020;--amber-dim:#e8a0201a;--amber-border:#e8a0204d;--text:#d2d8e4;--muted:#98a3b8;--faint:#7f8aa3;--border-faint:#ffffff1a;--border-subtle:#ffffff29;--nav-border:#ffffff16;--grid-line:#ffffff16;--hero-glow:#00bcd40e;--nav-link:#b3bccd;--nav-link-weight:500;--nav-link-active:#e4e9f2;--nav-active-underline:#00bcd4;--nav-contact-bg:#00bcd4;--nav-contact-text:#000;--nav-contact-weight:500;--nav-toggle-color:#b6bfd0;--nav-toggle-border:#ffffff17;--logo-hyp:#00bcd4;--logo-dev:#e4e9f2;--logo-cloud:#8b95ad}:root[data-theme=light]{--bg:#fdfcfa;--bg-secondary:#f4f1ec;--card:#fff;--card-hover:#f8f6f2;--nav-bg:#fdfcfacc;--nav-active-bg:#0000000e;--body-weight:400;--smoothing:antialiased;--nav-shadow:0 1px 3px #0000000d;--cyan:#00798c;--cyan-dim:#00798c17;--cyan-border:#00798c40;--cyan-on-tint:#006472;--amber-text:#8a5a00;--amber-dim:#8a5a0014;--amber-border:#8a5a004d;--text:#12141a;--muted:#454c5c;--faint:#5c6474;--border-faint:#00000017;--border-subtle:#00000024;--nav-border:#00000021;--grid-line:#00000012;--hero-glow:#00798c0d;--nav-link:#000;--nav-link-weight:600;--nav-link-active:#000;--nav-active-underline:#00606f;--nav-contact-bg:#00606f;--nav-contact-text:#fff;--nav-contact-weight:600;--nav-toggle-color:#000;--nav-toggle-border:#00000024;--logo-hyp:#00606f;--logo-dev:#12141a;--logo-cloud:#5c6474}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-mono);font-weight:var(--body-weight);-webkit-font-smoothing:var(--smoothing);flex-direction:column;margin:0;display:flex}main{flex:1}a{color:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.skip-link{z-index:100;background:var(--cyan);color:var(--bg);border-radius:0 0 8px 8px;padding:12px 20px;font-size:14px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:16px}.skip-link:focus{top:0}main:focus{outline:none}.page{max-width:1120px;margin:0 auto;padding:80px 24px 112px}.page-head{margin:0 0 56px}.page-title{letter-spacing:-.04em;text-wrap:balance;color:var(--text);margin:0;font-size:clamp(38px,5.5vw,62px);font-weight:700;line-height:1.05}.page-intro{text-wrap:pretty;max-width:640px;color:var(--muted);margin:20px 0 0;font-size:17px;line-height:1.75}.section-head{margin:0 0 48px}.section-title{letter-spacing:-.035em;text-wrap:balance;color:var(--text);margin:0;font-size:clamp(28px,3.3vw,40px);font-weight:700;line-height:1.15}.section-subtitle{text-wrap:pretty;max-width:620px;color:var(--muted);margin:16px 0 0;font-size:16.5px;line-height:1.7}.btn-primary{background:var(--cyan);color:var(--bg);letter-spacing:-.005em;border-radius:999px;align-items:center;padding:16px 32px;font-size:16px;font-weight:600;text-decoration:none;transition:filter .15s;display:inline-flex}.btn-primary:hover{filter:brightness(1.08)}.btn-outline{border:1px solid var(--border-subtle);color:var(--text);letter-spacing:-.005em;border-radius:999px;align-items:center;padding:16px 32px;font-size:16px;font-weight:600;text-decoration:none;transition:border-color .15s;display:inline-flex}.btn-outline:hover{border-color:var(--muted)}.button-row{flex-wrap:wrap;gap:14px;display:flex}.card{background:var(--card);border:1px solid var(--border-subtle);border-radius:8px;transition:border-color .2s,background-color .2s}.ext{color:var(--cyan);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.ext:hover{text-underline-offset:4px;text-decoration:underline}.ext,.logo,.hero-link,.link-value,.publication-link,.paper-link{padding-block:6px}.ext:after{content:"↗";font-size:12px}@media (width<=560px){.page{padding:56px 20px 80px}.page-head{margin-bottom:40px}.btn-primary,.btn-outline{padding:15px 22px;font-size:15px}}.site-nav{z-index:50;background:var(--nav-bg);backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--nav-border);box-shadow:var(--nav-shadow);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;gap:28px;max-width:1120px;height:76px;margin:0 auto;padding:0 24px;display:flex;position:relative}.logo{font-family:var(--font-mono);letter-spacing:-.02em;white-space:nowrap;font-size:1.375rem;font-weight:500;text-decoration:none}.logo-hyp{color:var(--logo-hyp)}.logo-dev{color:var(--logo-dev)}.logo-cloud{color:var(--logo-cloud)}.nav-toggle{border:1px solid var(--border-subtle);cursor:pointer;background:0 0;border-radius:6px;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;display:none}.nav-toggle-bar{background:var(--text);width:16px;height:2px;margin:0 auto;display:block}.nav-menu{flex-direction:column;gap:2px;display:none}.nav-menu:not([hidden]){display:flex}.nav-menu a{letter-spacing:-.01em;font-size:15.5px;font-weight:var(--nav-link-weight);color:var(--nav-link);border-radius:999px;padding:9px 16px;text-decoration:none;transition:color .15s,background-color .15s;position:relative}.nav-menu a:hover{color:var(--nav-link-active)}.nav-menu a[aria-current=page]{color:var(--nav-link-active);background:var(--nav-active-bg);font-weight:600}.nav-menu a[aria-current=page]:before{content:"";background:var(--nav-active-underline);border-radius:50%;width:5px;height:5px;margin-top:-2.5px;position:absolute;top:50%;left:16px}.nav-menu a[aria-current=page]{padding-left:30px}.theme-toggle{border:1px solid var(--nav-toggle-border);width:44px;height:44px;color:var(--nav-toggle-color);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle .icon-moon,:root[data-theme=light] .theme-toggle .icon-sun{display:none}:root[data-theme=light] .theme-toggle .icon-moon{display:inline-flex}.nav-social{gap:2px;margin-left:auto;display:flex}.btn-cv{border:1px solid var(--border-subtle);color:var(--text);letter-spacing:-.01em;border-radius:999px;flex-shrink:0;padding:10px 20px;font-size:15px;font-weight:500;text-decoration:none;transition:border-color .15s,background-color .15s}.btn-cv:hover{border-color:var(--cyan);background:var(--cyan-dim)}.btn-cv[aria-current=page]{border-color:var(--cyan)}.btn-contact{background:var(--nav-contact-bg);color:var(--nav-contact-text);font-weight:var(--nav-contact-weight);letter-spacing:-.01em;border-radius:999px;flex-shrink:0;padding:11px 24px;font-size:15px;text-decoration:none}@media (width<=900px){.nav-social{display:none}}@media (width<=560px){.nav-inner{gap:10px;height:64px;padding:0 16px}.logo{font-size:1.02rem}.btn-contact{padding:15px 16px;font-size:13px}}@media (width>=860px){.nav-menu [data-menu-only]{display:none}}@media (width<=859px){.btn-cv{display:none}.nav-toggle{display:inline-flex}.nav-menu{background:var(--card);border-bottom:1px solid var(--border-faint);padding:12px;position:absolute;top:100%;left:0;right:0}}@media (width>=860px){.nav-toggle{display:none}.nav-menu[hidden]{display:flex}.nav-menu{flex-direction:row;gap:6px}.theme-toggle{border-color:#0000;transition:border-color .15s}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--nav-toggle-border)}}.site-footer{border-top:1px solid var(--border-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:1120px;margin:0 auto;padding:32px 24px;display:flex}.footer-left{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:14px}.footer-links{gap:6px;display:flex}.icon-link{width:44px;height:44px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}.icon-link:hover{color:var(--text);background:var(--border-faint)}.icon-link svg{display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
