@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-devanagari-300-normal.D7nrgzLr.woff2)format("woff2"),url(/_astro/poppins-devanagari-300-normal.5EpgE5P1.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-latin-ext-300-normal.Cirz0Guu.woff2)format("woff2"),url(/_astro/poppins-latin-ext-300-normal.nf6F73WS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/poppins-latin-300-normal.Dku2WoCh.woff2)format("woff2"),url(/_astro/poppins-latin-300-normal.DCNuMXUj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-devanagari-400-normal.CJDn6rn8.woff2)format("woff2"),url(/_astro/poppins-devanagari-400-normal.CqVvlrh5.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-ext-400-normal.by3JarPu.woff2)format("woff2"),url(/_astro/poppins-latin-ext-400-normal.DaBSavcJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-400-normal.cpxAROuN.woff2)format("woff2"),url(/_astro/poppins-latin-400-normal.BOb3E3N0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/poppins-devanagari-400-italic.b0IoVOMD.woff2)format("woff2"),url(/_astro/poppins-devanagari-400-italic.6KhkvbTM.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-ext-400-italic.D4M8lIzc.woff2)format("woff2"),url(/_astro/poppins-latin-ext-400-italic.D4TZmcjf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/poppins-latin-400-italic.B4GYq972.woff2)format("woff2"),url(/_astro/poppins-latin-400-italic.BPejoDS-.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-devanagari-500-normal.BIdkeU1p.woff2)format("woff2"),url(/_astro/poppins-devanagari-500-normal.DMPDjHtT.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-latin-ext-500-normal.CK-6C4Hw.woff2)format("woff2"),url(/_astro/poppins-latin-ext-500-normal.CgAe2rWW.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/poppins-latin-500-normal.C8OXljZJ.woff2)format("woff2"),url(/_astro/poppins-latin-500-normal.DGXqpDMm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-devanagari-600-normal.STEjXBNN.woff2)format("woff2"),url(/_astro/poppins-devanagari-600-normal.ClASKHrr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-latin-ext-600-normal.CAhIAdZj.woff2)format("woff2"),url(/_astro/poppins-latin-ext-600-normal.Df5ffKXP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/poppins-latin-600-normal.zEkxB9Mr.woff2)format("woff2"),url(/_astro/poppins-latin-600-normal.BJdTmd5m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-devanagari-700-normal.O-jipLrW.woff2)format("woff2"),url(/_astro/poppins-devanagari-700-normal.fHs-vx92.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-latin-ext-700-normal.cby-RkWa.woff2)format("woff2"),url(/_astro/poppins-latin-ext-700-normal.DctTR6Tg.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/poppins-latin-700-normal.Qrb0O0WB.woff2)format("woff2"),url(/_astro/poppins-latin-700-normal.BVuQR_eA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{color-scheme:dark;--bg:#0a0d13;--wave:0, 124, 237;--card:#222;--card-2:#282828;--card-3:#2e2e2e;--footer:#252525;--line:#3a3a3a;--line-soft:#333;--text:#d5d5d5;--muted:#a3a3a3;--heading:#f5f5f5;--accent:#007ced;--accent-text:#3d9bff;--accent-soft:#007ced24;--on-accent:#fff;--shadow:0 0 40px -10px #0009;--photo-border:#444}:root[data-theme=light]{color-scheme:light;--bg:#e9eef5;--wave:0, 104, 201;--card:#fff;--card-2:#f6f7f9;--card-3:#eef1f5;--footer:#f3f4f6;--line:#dde1e7;--line-soft:#e8ebef;--text:#444a52;--muted:#5f6670;--heading:#1f2329;--accent:#007ced;--accent-text:#0065c4;--accent-soft:#007ced1a;--on-accent:#fff;--shadow:0 10px 50px -12px #0f1e3c40;--photo-border:#e3e7ec}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{color:var(--text);background:var(--bg);min-height:100vh;margin:0;font-family:Poppins,system-ui,sans-serif;font-size:15px;line-height:1.75;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--accent-text);text-decoration:none;transition:color .2s}a:hover{color:var(--heading)}h1,h2,h3,h4,h5,h6{color:var(--heading);margin:0 0 .6em;font-weight:600;line-height:1.3}p{margin:0 0 1em}:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px;border-radius:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--accent);color:#fff;border-radius:30px;padding:10px 18px;position:absolute;top:-60px;left:16px}.skip-link:focus{color:#fff;top:16px}.bg-wave{z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 120%, rgba(var(--wave), .16), transparent 60%), var(--bg);width:100%;height:100%;position:fixed;inset:0}.page{z-index:1;background:var(--card);max-width:1240px;box-shadow:var(--shadow);border:1px solid color-mix(in srgb, var(--line) 45%, transparent);border-radius:40px;margin:56px auto;padding:40px 70px 0;position:relative}.site-main{view-transition-name:main;min-height:50vh}@media (width<=1320px){.page{margin:40px}}@media (width<=991px){.page{border-radius:28px;margin:24px 16px;padding:28px 32px 0}}@media (width<=575px){.page{border:0;border-radius:0;margin:0;padding:20px 18px 0}}.site-header{justify-content:space-between;align-items:center;gap:24px;padding-bottom:44px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.main-nav>ul{align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.main-nav a{color:var(--muted);border-radius:20px;align-items:center;gap:4px;padding:10px 14px;font-size:14px;font-weight:500;display:inline-flex}.main-nav a:hover,.main-nav a[aria-current=page],.main-nav .is-active>a{color:var(--heading)}.main-nav .has-sub{position:relative}.main-nav .submenu{background:var(--card-2);border:1px solid var(--line);min-width:250px;box-shadow:var(--shadow);opacity:0;visibility:hidden;z-index:20;border-radius:16px;margin:0;padding:10px;list-style:none;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:calc(100% + 6px);left:50%;transform:translateY(6px)}.main-nav .has-sub:hover .submenu,.main-nav .has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:none}.main-nav .submenu a{border-radius:10px;width:100%;padding:9px 14px;display:flex}.main-nav .submenu a:hover,.main-nav .submenu a[aria-current=page]{background:var(--accent-soft);color:var(--heading)}.icon-btn{border:1px solid var(--line);width:44px;height:44px;color:var(--heading);cursor:pointer;background:0 0;border-radius:50%;place-items:center;transition:background .2s,border-color .2s;display:inline-grid}.icon-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.theme-toggle .icon-sun{display:none}:root[data-theme=light] .theme-toggle .icon-sun{display:block}:root[data-theme=light] .theme-toggle .icon-moon,.menu-toggle,.menu-toggle .icon-close,.menu-toggle[aria-expanded=true] .icon-open{display:none}.menu-toggle[aria-expanded=true] .icon-close{display:block}@media (width<=1100px){.menu-toggle{display:inline-grid}.main-nav{z-index:30;background:var(--card-2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:12px;display:none;position:absolute;top:96px;left:16px;right:16px}.main-nav.is-open{display:block}.main-nav>ul{flex-direction:column;align-items:stretch}.main-nav a{width:100%;font-size:15px}.main-nav .submenu{opacity:1;visibility:visible;box-shadow:none;background:0 0;border:0;min-width:0;padding:0 0 0 16px;position:static;transform:none}}@media (width<=575px){.site-header{padding-bottom:28px}.main-nav{top:80px}}.block-title{margin-bottom:30px}.block-title h2,.block-title h1{margin:0;padding-bottom:7px;font-size:21px;display:inline-block;position:relative}.block-title h1{font-size:30px}.block-title h2:before,.block-title h1:before{content:"";background:var(--line-soft);border-radius:2px;width:100%;height:2px;position:absolute;bottom:0;left:0}.block-title h2:after,.block-title h1:after{content:"";background:var(--accent);border-radius:2px;width:30px;height:2px;position:absolute;bottom:0;left:0}.block-title p{color:var(--muted);max-width:70ch;margin:14px 0 0}.section{padding-bottom:60px}.btn{border:2px solid var(--accent);min-height:44px;color:var(--heading);cursor:pointer;background:0 0;border-radius:30px;justify-content:center;align-items:center;gap:10px;padding:10px 28px;font:500 14px/1.2 Poppins,sans-serif;transition:background .25s,color .25s,transform .25s;display:inline-flex;box-shadow:0 10px 10px -8px #00000073}.btn:hover{background:var(--accent);color:var(--on-accent);transform:translateY(-2px)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 82%, #000)}.btn-ghost{border-color:var(--line)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 50px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid}@media (width<=991px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:50px;padding:10px 0 80px;display:grid}.hero-photo{aspect-ratio:1;border:18px solid var(--photo-border);border-radius:50%;justify-self:center;width:min(380px,100%);position:relative;overflow:hidden;box-shadow:0 0 25px #0009}.hero-photo img{object-fit:cover;width:100%;height:100%}.hero-subtitle{color:var(--muted);min-height:1.75em;margin-bottom:4px;font-size:15px}.typed-cursor{vertical-align:-.15em;background:var(--accent);width:2px;height:1.05em;margin-left:3px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.hero h1{margin-bottom:18px;font-size:clamp(34px,5vw,48px);line-height:1.15}.hero h1 .pill{background:var(--accent);color:#fff;border-radius:40px;margin-left:4px;padding:0 16px 4px;display:inline-block}.hero-text{max-width:60ch}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}@media (width<=860px){.hero{text-align:center;grid-template-columns:minmax(0,1fr);gap:28px;padding-bottom:60px}.hero-photo{border-width:12px;width:min(260px,80%)}.hero-text{margin-inline:auto}.hero-actions{justify-content:center}}.service{gap:22px;display:flex}.service .icon{color:var(--accent);flex:none;margin-top:3px}.service h3{margin:0 0 6px;font-size:16px}.service p{margin:0;font-size:14px}.post-card{color:inherit;flex-direction:column;gap:14px;display:flex}.post-card-media{aspect-ratio:16/10;background:var(--card-3);border-radius:12px;position:relative;overflow:hidden}.post-card-media img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.post-card:hover .post-card-media img{transform:scale(1.05)}.post-card-date{color:var(--muted);align-items:center;gap:10px;margin:0;font-size:12px;display:flex}.post-card-cat{color:var(--accent-text);font-weight:500}.post-card-cat:before{content:"";background:var(--line);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin-right:10px;display:inline-block}.post-card h3{margin:-8px 0 0;font-size:16px;transition:color .2s}.post-card:hover h3{color:var(--accent-text)}.testimonials{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:calc(50% - 15px);grid-auto-flow:column;gap:30px;padding:26px 4px 12px;display:grid;overflow-x:auto}.testimonials::-webkit-scrollbar{display:none}.testimonial{scroll-snap-align:start;background:var(--card-2);border:2px solid var(--line);border-radius:8px;margin-left:20px;padding:30px 26px 22px 70px;position:relative}.testimonial-photo{object-fit:cover;border-radius:50%;width:70px;height:70px;position:absolute;top:-22px;left:-20px;box-shadow:0 6px 18px #0006}.testimonial blockquote{margin:0 0 14px;font-size:14px;font-style:italic}.testimonial .icon{color:var(--line);position:absolute;bottom:28px;left:22px}.testimonial-name{color:var(--heading);margin:0;font-size:13px;font-weight:600}.testimonial-company{color:var(--accent-text);margin:0;font-size:12px}.slider-dots{justify-content:center;gap:6px;display:flex}.slider-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.slider-dots button:before{content:"";background:var(--line);border-radius:3px;width:18px;height:3px;transition:background .2s}.slider-dots button[aria-current=true]:before{background:var(--accent)}@media (width<=800px){.testimonials{grid-auto-columns:calc(100% - 20px)}}.clients-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.clients-track{width:max-content;animation:clients-right var(--dur,30s) linear infinite;margin:0;padding:0;list-style:none;display:flex}.clients-marquee:hover .clients-track,.clients-marquee:focus-within .clients-track{animation-play-state:paused}.clients-track li{flex:none;place-items:center;width:200px;padding:8px 28px;display:grid}.clients-track a,.clients-track span{opacity:.55;place-items:center;transition:opacity .25s;display:grid}.clients-track a:hover{opacity:1}.clients-track img{width:auto;max-height:44px}:root[data-theme=light] .clients-track img{filter:invert()grayscale()}@keyframes clients-right{0%{transform:translate(-50%)}to{transform:translate(0)}}@media (width<=700px){.clients-track li{width:150px;padding:8px 18px}}.slider-controls{justify-content:center;align-items:center;gap:14px;margin-top:14px;display:flex}.testimonial{cursor:pointer}.stat{text-align:center;background:var(--card-2);border:2px solid var(--line-soft);border-radius:10px;padding:26px 12px 20px}.stat .icon{color:var(--accent)}.stat h3{margin:10px 0 2px;font-size:14px}.stat-value{color:var(--heading);font-variant-numeric:tabular-nums;font-size:40px;font-weight:300;line-height:1.2;display:block}.timeline{border-left:2px solid var(--line-soft);margin:0;padding:0;list-style:none}.timeline-item{grid-template-columns:170px minmax(0,1fr);gap:24px;padding:0 0 30px 28px;display:grid;position:relative}.timeline-item:before{content:"";background:var(--card);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-7px}.timeline-item.is-current:before{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.timeline-period{color:var(--heading);background:var(--card-3);border-radius:20px;place-self:start;padding:3px 12px;font-size:12px;font-weight:500;display:inline-block}.is-current .timeline-period{background:var(--accent);color:#fff}.timeline-org{color:var(--muted);font-size:13px;display:block}.timeline-item h3{margin:2px 0 6px;font-size:16px}.timeline-item p{margin:0;font-size:14px}@media (width<=700px){.timeline-item{grid-template-columns:minmax(0,1fr);gap:8px}}.cert{border:2px solid var(--line);background:var(--card-2);border-radius:10px;display:flex;overflow:hidden}.cert-icon{background:var(--card-3);width:110px;color:var(--heading);flex:none;place-items:center;display:grid}.cert-body{padding:22px 24px}.cert-body h3{margin:0 0 4px;font-size:16px}.cert-body p{color:var(--muted);margin:0;font-size:13px}.pubs{gap:14px;margin:0 0 24px;padding:0;list-style:none;display:grid}.pub{background:var(--card-2);border:2px solid var(--line-soft);border-radius:12px;padding:18px 22px}.pub-type{color:var(--accent-text);align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.pub h3{margin:6px 0 0;font-size:15px;line-height:1.5}.pub h3 a{color:var(--heading);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}.pub p{color:var(--muted);margin:6px 0 0;font-size:13px}.orcid-badge{border:1px solid var(--line);min-height:44px;color:var(--heading);border-radius:30px;align-items:center;gap:10px;padding:8px 18px;font-size:14px;display:inline-flex}.orcid-badge .icon{color:#a6ce39}.orcid-badge:hover{border-color:var(--accent);color:var(--heading)}.profiles{flex-wrap:wrap;align-items:center;gap:10px 14px;margin:-10px 0 30px;display:flex}.profiles>span{color:var(--heading);margin-right:6px;font-weight:500}.profiles .orcid-badge:first-of-type .icon{color:#0a66c2}:root[data-theme=dark] .profiles .orcid-badge:first-of-type .icon{color:#3d9bff}.studies{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0;padding:0;list-style:none;display:grid}.study{border-bottom:1px solid var(--line-soft);grid-template-columns:78px minmax(0,1fr);gap:14px;padding:14px 0;display:grid}.study-date{color:var(--accent-text);padding-top:2px;font-size:12px;font-weight:500}.study h3{margin:0;font-size:14px;line-height:1.5}.study p{color:var(--muted);margin:2px 0 0;font-size:13px}@media (width<=800px){.studies{grid-template-columns:minmax(0,1fr)}}.hub-card{background:var(--card-2);border:2px solid var(--line-soft);color:inherit;border-radius:16px;flex-direction:column;gap:10px;padding:28px;transition:border-color .25s,transform .25s;display:flex}.hub-card:hover{border-color:var(--accent);color:inherit;transform:translateY(-3px)}.hub-card .icon{color:var(--accent)}.hub-card h2{margin:4px 0 0;font-size:18px}.hub-card p{margin:0;font-size:14px}.hub-card .more{color:var(--accent-text);margin-top:auto;font-size:13px;font-weight:500}.bar{margin-bottom:18px}.bar-head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.bar-head h3{margin:0;font-size:15px}.bar-track{background:var(--card-3);border-radius:4px;height:38px;overflow:hidden}.bar-fill{height:100%;width:var(--w);background:var(--c,var(--accent));color:#fff;transform-origin:0;justify-content:flex-end;align-items:center;padding-right:14px;font-size:15px;font-weight:500;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);display:flex}.js-anim .bar-fill{transform:scaleX(0)}.js-anim .is-visible .bar-fill{transform:scaleX(1)}.skill-card{background:var(--card-2);border:2px solid var(--line-soft);border-radius:14px;align-items:center;gap:16px;padding:20px;display:flex}.ring{flex:none;width:84px;height:84px;position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring .ring-track{stroke:var(--card-3)}.ring .ring-fill{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:239;stroke-dashoffset:calc(239 - 239 * var(--p) / 100);transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}.js-anim .ring .ring-fill{stroke-dashoffset:239px}.js-anim .is-visible .ring .ring-fill{stroke-dashoffset:calc(239 - 239 * var(--p) / 100)}.ring-value{color:var(--heading);place-items:center;font-size:16px;font-weight:600;display:grid;position:absolute;inset:0}.skill-card h3{margin:0;font-size:15px}.skill-card p{color:var(--muted);margin:0;font-size:13px}.donut-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:30px;display:grid}.donut{aspect-ratio:1;justify-self:center;width:min(260px,100%)}.donut circle{fill:none;stroke-width:22px;transition:stroke-dasharray 1.2s}.legend{margin:0;padding:0;list-style:none}.legend li{align-items:center;gap:12px;padding:5px 0;display:flex}.legend .dot{background:var(--c);border-radius:50%;flex:none;width:12px;height:12px}.legend .val{color:var(--heading);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:500}@media (width<=700px){.donut-wrap{grid-template-columns:minmax(0,1fr)}}.langs{margin:0;padding:0;list-style:none}.langs li{align-items:center;gap:18px;padding:8px 0;display:flex}.langs .name{min-width:90px;color:var(--heading)}.lang-dots{gap:7px;display:flex}.lang-dots span{background:var(--card-3);border:1px solid var(--line);border-radius:50%;width:14px;height:14px}.lang-dots span.on{background:var(--c,var(--accent));border-color:#0000}.ai-card{background:var(--card-2);border:2px solid var(--line-soft);color:var(--heading);border-radius:14px;align-items:center;gap:14px;padding:18px 20px;font-weight:500;display:flex}.ai-card .icon{color:var(--accent)}.badge-feature{background:linear-gradient(135deg, var(--accent-soft), transparent 70%), var(--card-2);border:2px solid var(--accent);border-radius:16px;align-items:center;gap:18px;padding:26px 28px;display:flex}.badge-feature .icon{color:var(--accent);flex:none}.badge-feature h3{margin:0 0 4px;font-size:18px}.badge-feature p{margin:0}.project{background:var(--card-2);border:2px solid var(--line-soft);color:inherit;border-radius:14px;flex-direction:column;transition:border-color .25s,transform .25s;display:flex;overflow:hidden}.project:hover{border-color:var(--accent);color:inherit;transform:translateY(-3px)}.project-shot{aspect-ratio:16/10;background:var(--card-3);border-bottom:2px solid var(--line-soft);overflow:hidden}.project-shot img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .6s}.project:hover .project-shot img{transform:scale(1.04)}.project-body{padding:18px 20px 20px}.project-body h2{margin:0 0 2px;font-size:17px}.project-meta{color:var(--accent-text);margin:0 0 8px;font-size:12px}.project-body p{margin:0;font-size:14px}.post-header{text-align:center;max-width:820px;margin:0 auto 30px}.post-header h1{font-size:clamp(28px,4vw,40px);line-height:1.2}.post-meta{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px 18px;font-size:13px;display:flex}.post-meta a{color:var(--accent-text)}.post-cover{border-radius:18px;max-width:1000px;margin:0 auto 40px;overflow:hidden}.prose{max-width:740px;margin:0 auto;font-size:16px;line-height:1.85}.prose h2{margin:2em 0 .6em;font-size:24px}.prose h3{margin:1.6em 0 .5em;font-size:19px}.prose h4{margin:1.4em 0 .4em;font-size:17px}.prose a{text-underline-offset:3px;text-decoration:underline}.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.3em}.prose li{margin-bottom:.4em}.prose li::marker{color:var(--accent)}.prose strong{color:var(--heading)}.prose blockquote{border-left:3px solid var(--accent);background:var(--card-2);border-radius:0 10px 10px 0;margin:1.5em 0;padding:16px 22px}.prose table{border-collapse:collapse;width:100%;margin:1.5em 0;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.prose th{background:var(--card-2);color:var(--heading)}.prose code{background:var(--card-3);border-radius:5px;padding:2px 6px;font-size:.9em}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.faq{max-width:740px;margin:50px auto 0}.faq details{border:2px solid var(--line-soft);background:var(--card-2);border-radius:12px;margin-bottom:12px}.faq summary{cursor:pointer;color:var(--heading);justify-content:space-between;gap:16px;padding:16px 20px;font-weight:500;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--accent);font-size:22px;line-height:1;transition:transform .25s}.faq details[open] summary:after{transform:rotate(45deg)}.faq details p{margin:0;padding:0 20px 18px}.author-box{background:var(--card-2);border:2px solid var(--line-soft);border-radius:16px;align-items:center;gap:20px;max-width:740px;margin:50px auto 0;padding:24px;display:flex}.author-box img{object-fit:cover;border-radius:50%;flex:none;width:76px;height:76px}.author-box h2{margin:0 0 4px;font-size:16px}.author-box p{margin:0;font-size:14px}.post-tags{flex-wrap:wrap;gap:8px;max-width:740px;margin:30px auto 0;display:flex}.post-tags span{background:var(--card-3);border-radius:20px;padding:4px 12px;font-size:12px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:34px;display:flex}.filters a{border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:7px 16px;font-size:13px}.filters a:hover,.filters a[aria-current=page]{border-color:var(--accent);color:var(--heading);background:var(--accent-soft)}.contact-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:50px;display:grid}.contact-item{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:16px;padding:20px 0;display:flex}.contact-item .icon{color:var(--accent);flex:none;margin-top:2px}.contact-item h2{margin:0;font-size:15px}.contact-item p{margin:0;font-size:14px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.field{flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.field label{color:var(--heading);font-size:13px;font-weight:500}.field input,.field textarea,.field select{color:var(--heading);background:var(--card-2);border:2px solid var(--line);border-radius:12px;min-height:48px;padding:12px 16px;font:400 15px/1.5 Poppins,sans-serif;transition:border-color .2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);outline:none}.field textarea{resize:vertical;min-height:150px}.form-status{margin-top:14px;font-size:14px}.form-status.ok{color:#2fbf71}.form-status.err{color:#ff7a7a}@media (width<=860px){.contact-grid,.form-row{grid-template-columns:minmax(0,1fr)}}.site-footer{background:var(--footer);border-radius:0 0 40px 40px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:20px -70px 0;padding:18px 45px;font-size:13px;display:flex}.site-footer p{margin:0}.social{gap:6px;margin:0;padding:0;list-style:none;display:flex}.social a{width:44px;height:44px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.social a:hover{color:var(--accent-text);background:var(--accent-soft)}@media (width<=991px){.site-footer{border-radius:0 0 28px 28px;margin:20px -32px 0;padding:16px 28px}}@media (width<=575px){.site-footer{text-align:center;border-radius:0;justify-content:center;margin:20px -18px 0;padding-bottom:90px}}.wa-float{z-index:40;color:#fff;background:#25d366;border-radius:50%;place-items:center;width:58px;height:58px;transition:transform .25s;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 10px 24px #00000059}.wa-float:hover{color:#fff;transform:scale(1.08)}.cursor-dot,.cursor-ring{pointer-events:none;z-index:200;opacity:0;border-radius:50%;transition:opacity .3s;position:fixed;top:0;left:0}.cursor-dot{background:var(--accent);width:6px;height:6px;margin:-3px 0 0 -3px}.cursor-ring{border:1.5px solid var(--accent);width:38px;height:38px;margin:-19px 0 0 -19px;transition:opacity .3s,width .25s,height .25s,margin .25s,background .25s}.cursor-on .cursor-dot,.cursor-on .cursor-ring{opacity:1}.cursor-hover .cursor-ring{background:var(--accent-soft);width:64px;height:64px;margin:-32px 0 0 -32px}@view-transition{navigation:auto}::view-transition-old(main){animation:.25s both vt-out}::view-transition-new(main){animation:.45s cubic-bezier(.2,.7,.2,1) both vt-in}@keyframes vt-out{to{opacity:0;transform:translate(-24px)}}@keyframes vt-in{0%{opacity:0;transform:translate(40px)perspective(800px)rotateY(-6deg)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.clients-track{flex-wrap:wrap;justify-content:center;width:auto;animation:none!important}.clients-track .is-copy{display:none}::view-transition-old(main),::view-transition-new(main){animation:none}}.logo[data-astro-cid-f7espo7c]{color:var(--heading);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.logo-icon[data-astro-cid-f7espo7c]{background:var(--accent);flex:none;width:34px;height:38px;transition:transform .4s;-webkit-mask:url(/brand/jp-mask.png) 50%/contain no-repeat;mask:url(/brand/jp-mask.png) 50%/contain no-repeat}.logo[data-astro-cid-f7espo7c]:hover .logo-icon[data-astro-cid-f7espo7c]{transform:rotate(-8deg)scale(1.06)}.logo[data-astro-cid-f7espo7c] .logo-word{width:auto;height:25px}@media (width<=420px){.logo[data-astro-cid-f7espo7c] .logo-word{height:20px}}
